什么是nacos
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Nacos 的关键特性包括:
- 服务发现和服务健康监测
- 动态配置服务
- 动态 DNS 服务
- 服务及其元数据管理


以上数据来源nacos官网
为什么要用nacos
功能优势
Nacos = 注册中心 + 配置中心。
nacos社区非常活跃,最近也比较高产,Nacos功能和需求列表可以看到目前nacos的功能以及规划排期的功能
历史原因
市场上的注册中心(eureka、zookeeper、consul等)出现比较早,nacos都是从前者参考后做出来,比前者更加丰富。
主流产品对比
在nacos之前,我们一般会选择zookeeper、eureka、consul等,nacos出来之后,会逐渐迁移到nacos(身边的小伙伴已经陆陆续续地切换到nacos去了),这也会是一个大的趋势。
- zookeeper是基于CP模型,leader+follower,leader写,同步到follower,follower可以读,保证顺序一致性,就是基本尽量保证到数据一致(弱一致),主动进行数据同步。当leader崩溃的时候,为了保证数据一致性,尽量减少读到不一致的数据的情况,这时候会进行选举,以及做数据同步,但是集群会短暂的不可用。
- eureka是基于AP模型,peer-to-peer,每个节点能写也能读,每个节点都要同步给其他节点,不过是异步同步,所以随时读任意一个节点时都有可能读到不一样的数据,任何一个节点宕机,其他节点不会受到影响,都能正常工作,极高可用性,但是数据一致性太弱。
- Consul基于raft算法的CP模型
- Nacos基于raft算法的CP模型,同时也支持配置成类似eureka的AP模型
| Nacos | Eureka(闭源) | Consul | Zookeeper | |
|---|---|---|---|---|
| 一致性协议 | CP或AP(支持自主选择) | AP | CP | CP |
| 健康检查 | TCP/HTTP/MYSQL/Client Beat | Client Beat | TCP/HTTP/gRPC/Cmd | Keep Alive |
| 负载均衡策略 | 权重/metadata/Selector | Ribbon | Fabio | — |
| 雪崩保护 | 有 | 有 | 无 | 无 |
| 自动注销实例 | 支持 | 支持 | 支持 | 支持 |
| 访问协议 | HTTP/DNS | HTTP | HTTP/DNS | TCP |
| 监听支持 | 支持 | 支持 | 支持 | 支持 |
| 多数据中心 | 支持 | 支持 | 支持 | 不支持 |
| 跨注册中心同步 | 支持 | 不支持 | 支持 | 不支持 |
| SpringCloud集成 | 支持 | 支持 | 支持 | 支持 |
| Dubbo集成 | 支持 | 不支持 | 支持 | 支持 |
| K8S集成 | 支持 | 不支持 | 支持 | 不支持 |
以上表格来源于微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
界面美观
不得不说,阿里出品都挺好看的,挺符合开发者审美~~~
总结
建议大家未来还是使用nacos(不正式使用的话私下玩玩也挺不错的),因为nacos功能更加丰富,社区更加活跃,背靠国内大厂(经受双十一的考验),中英文文档,界面美观。
参考与感谢
版权声明:本文为qq_27185561原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。