一、Nacos优势
1、与eureka对比
- eureka2.0闭源了
- 从官网看nacos的注册实例大于eureka
- nacos使用raft协议,nacos集群的一致性要远大于eureka集群
Raft的数据一致性策略:Raft协议强依赖Leader节点来确保集群数据一致性,即客户端发送过来的数据均先到达Leader节点,Leader节点接收到数据后,先将数据标记为未提交状态,Leader开始向所有的Follower发送数据并等待响应。在获得集群中大于N/2的Follower已成功接收数据的响应后,Leader将数据标记为已提交。并通知客户端数据已接收确认。在确保客户端已经接收数据确认后,再向所有Follower通知数据已提交。
2、与SpringCloudCofing对比
- Config需要依赖git,并依赖Spring Cloud Bus来实现更新
- Config没有可视化界面
- Nacos Conifg使用长连接更新配置,一旦配置变化,通知客户端的速度迅速。
二、Nacos Server
- 单机模式
- 集群模式
1、单机模式
此模式一般用于测试,不用改任何配置,直接敲以下命令执行
sh bin/startup.sh -m standalone
从/nacos/index.html访问可视化界面
默认账号密码为 nacos nacos
2、集群模式
需要依赖MySQL,修改两个配置文件:
conf/cluster.conf conf/application.properties
1、cluster.conf,填入要运行 Nacos Server 机器的 ip
192.168.1.1 192.168.1.2
2、修改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
这里有个坑,单机版使用Derby内存数据库,就算配置了MySQL也不生效
集群模式下使用MySQL,没有配置会报错。