java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java SpringBoot Nacos

一篇文章带你了解Java SpringBoot Nacos

作者:JordanPanther

这篇文章主要介绍了SpringBoot使用Nacos配置中心的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、什么是Nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 是Spring Cloud A 中的服务注册发现组件,类似于Consul、Eureka,同时它又提供了分布式配置中心的功能,这点和Consul的config类似,支持热加载。

Nacos 作为微服务核心的服务注册与发现中心,让大家在 Eureka 和 Consule 之外有了新的选择,开箱即用,上手简洁。

1.1与eureka对比

1 eureka 2.0闭源码了。
2 从官网来看nacos 的注册的实例数是大于eureka的,
3 因为nacos使用的raft协议,nacos集群的一致性要远大于eureka集群.

分布式一致性协议 Raft,自 2013 年论文发表,之后就受到了技术领域的热捧,与其他的分布式一致性算法比,Raft 相对比较简单并且易于实现,这也是 Raft 能异军突起的主要因素。

在这里插入图片描述

Raft 的数据一致性策略

Raft 协议强依赖 Leader 节点来确保集群数据一致性。即 client 发送过来的数据均先到达 Leader 节点,Leader 接收到数据后,先将数据标记为 uncommitted 状态,随后 Leader 开始向所有 Follower 复制数据并等待响应,在获得集群中大于 N/2 个 Follower 的已成功接收数据完毕的响应后,Leader 将数据的状态标记为 committed,随后向 client 发送数据已接收确认,在向 client 发送出已数据接收后,再向所有 Follower 节点发送通知表明该数据状态为committed。

1.2与zookeeper对比

1.作为配置中心

服务器存储位置不同,分别采用mysql和zk本身存储
消息发送,zk采用过半机制保持一致性,Nacos采用异步广播,通过后台线程重试保证。

2.作为注册中心

Nacos:nacos支持两种方式的注册中心,持久化和非持久化存储服务信息。

非持久直接存储在nacos服务节点的内存中,并且服务节点间采用去中心化的思想,服务节点采用hash分片存储注册信息
持久化使用Raft协议选举master节点,同样采用过半机制将数据存储在leader节点上

Zookeeper:利用zk的树型结构做数据存储,服务注册和消费信息直接存储在zk树形节点上,集群下同样采用过半机制保证服务节点间一致性

1.3与springcloud config 对比

三大优势:

2、Spring Cloud Alibaba 套件

目前 Spring Cloud Alibaba 主要有三个组件:

3、Nacos 的架构和安装

3.1、Nacos 的架构

在这里插入图片描述

3.2、Nacos Server 的下载和安装

在使用 Nacos 之前,需要先下载 Nacos 并启动 Nacos Server。

安装的参考教程:

https://www.jb51.net/article/195538.htm

4、Nacos Server 的运行

4.1两种模式

Nacos Server 有两种运行模式:

4.2、standalone 模式

此模式一般用于 demo 和测试,不用改任何配置,直接敲以下命令执行

sh bin/startup.sh -m standalone

然后从 http://xxxx:8848/nacos/index.html 进入控制台就能看到如下界面了

在这里插入图片描述

默认账号和密码为:nacos nacos

4.3、cluster 模式

测试环境,可以先用 standalone 模式撸起来,享受 coding 的快感,但是,生产环境可以使用 cluster 模式。

cluster 模式需要依赖 MySQL,然后改两个配置文件:

conf/cluster.conf
conf/application.properties

cluster.conf,填入要运行 Nacos Server 机器的 ip

#it is ip
#example
10.10.109.214
11.16.128.34
11.16.128.36

修改NACOS_PATH/conf/application.properties,加入 MySQL 配置

 db.num=1 
 db.url.0=jdbc:mysql://localhost:3306/nacos_config
 characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
 db.user=root
 db.password=root

创建一个名为nacos_config的 database,将NACOS_PATH/conf/nacos-mysql.sql中的表结构导入刚才创建的库中.

4、输入以下命令即可启动服务:

	sh bin/startup.sh

输入http://xxxx:8848/nacos/index.html 进入控制台

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

您可能感兴趣的文章:
阅读全文