1.什么是Nacos

Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。(配置中心、注册中心)
一句话概括就是Nacos = Spring Cloud注册中心 + Spring Cloud配置中心。

2.为什么要用Nacos

①eureka 2.0闭源码了
②开箱即用,上手简洁,暂时也没发现有太大的坑
③nacos使用的raft协议 ,nacos集群的一致性要远大于eureka集群
④因为nacos功能更加丰富,社区更加活跃
⑤背靠国内大厂(经受双十一的考验),中英文文档

3.Raft的数据一致性策略

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

raft 引入了复制状态机的概念(Replicated state machines), 将集群中的每个服务器看做一个状态机, 它们接收外部的指令, 进行状态的改变, 不考虑硬件错误, 这样的状态机是一个确定型状态机, 即只要初始状态和接收到的指令是确定的, 那么它任意时刻的状态也是确定的, 这样以来, 所谓保持分布式一致性即是保证集群中所有状态机的状态一致性

4.注册中心

(1)架构图

nacos 集群部署架构图 nacos集群作用_java

(2)注册中心的作用
解决url地址硬编码问题
自动注册和发现
实现了动态路由
解决负载均衡

5.Nacos的特点

(1)易于使用
动态配置管理、服务发现和动态的一站式解决方案
20多种开箱即用的以服务为中心的架构特性
基本符合生产要求的轻量级易用控制台

(2)更适应云架构
无缝支持Kubernetes和Spring Cloud
在主流公共云上更容易部署和运行(例如阿里云和AWS)
多租户和多环境支持

(3)生产等级
脱胎于历经阿里巴巴10年生产验证的内部产品
支持具有数百万服务的大规模场景
具备企业级SLA的开源产品

(4)丰富的应用场景
支持限流、大促销预案和异地多活
直接支持或稍作扩展即可支持大量有用的互联网应用场景
流量调度和服务治理

6.总结

Nacos = Spring Cloud注册中心 + Spring Cloud配置中心。
Nacos是阿里开源的,Nacos 支持基于 DNS 和基于 RPC 的服务发现
Nacos只需要简单的配置就可以完成服务的注册发现。
Nacos还支持动态配置服务,可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置
nacos功能更加丰富,社区更加活跃,背靠国内大厂(经受双十一的考验),中英文文档,界面美观。