本文主要介绍下注册中心选型参考, 注册中心多维度对比。
网上能搜到的Consul对比的内容资料也比较少, 本篇也将着重介绍下。
转载请注明🙂,喜欢请一键三连哦😊
一、基础功能对比
下面这张图,几乎全网的人都在用,我们也粘贴过来。内容我稍微调整了下, 把社区当前较新版本的能力粘贴了上去。
原图出处: 微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
总结: 单纯从功能角度,Nacos与Consul 在 健康检查、通信协议、多数据中心、KV存储能力、开源集成等方便表现较为出色, 下面内容将对 Nacos与Consul展开更多对比。
另外, 有些同学担心 Consul CP一致性模型问题, 在这里我也做一个补充。 虽然Consul是基于Raft协议的CP系统,但是Consul提供了三种一致性模型, Stale模式保证了 Consul 在 无主情况下依然可读,并且允许从任一Server节点(非Leader节点)返回数据, 这对于 Heavy Read场景将是非常友好的。
补充, 补充一些我对其他注册中心选型的看法:
由于我对除Consul 其他注册中心也没有太多了解,下面仅是个人前浅显的理解, 欢迎在评论谈谈你的了解。
-
Eureka:
- 对于传言闭源的说法。2.0版本确实没有发布, 但是1.x版本官方依然在跟着SpringCloud版本迭代和维护, 所以目前不存在不维护和不稳定问题。
- 对多语言支持问题。多语言问题上是需要考虑的,对于云厂商和大公司,多语言场景较为普遍,Eureka官方并没有对除Java客户端很好的支持。
-
ZooKeeper: Zookeeper无Leader集群是不可读写的,而且功能相对较少。
二、其他维度对比
能力相近时,落地实施的难以程度可能也是我们考虑的一些重要指标,所以本小节重点对比了一些 运维、监控的一些细节。
不得不吐槽, Consul中文资料真的是少,能查到的一般也都是泛泛介绍,想学习、了解确实有些难受 。
想学习Consul同学可以看我的专栏,翻译了很多Consul工作原理及落地场景。
Nacos | Consul | |
---|---|---|
配置中心能力(KV) | 支持 | 支持 |
SDK支持 | 多语言 | 多语言 |
开放API | 支持 | 支持 |
开发语言 | Java | Go |
社区文档 | 中文文档 | 英文文档(中文资料较少) |
落地厂商 | 阿里云(MSE) | 京东云 JDSF,腾讯 TSF ,头条 |
部署依赖 | MySQL | 无 |
K8S部署 | k8s install nacos | k8s install consul |
运维监控 | Nacos monitor guide | Consul telemetry |
Service Mesh | / | Consul Service Mesh |
Istio集成 | IN PLAN with Nacos 1.x.x | 支持 |
三、性能对比
性能放面对比,对于云厂商和大型公司来说这是比较重要的, 因为这决定了是否有能力支撑大规模落地场景。
Nacos | Consul | |
---|---|---|
性能表现 | 服务注册性能 配置中心性能 | 社区暂无找到公开资料, 根据压测结果,评估 2C2g *3 , Default模式下, 查询能力可达 4000qps |
总结: Nacos官方还是给出了一些数据, 可参考表格中给出的链接。Consul资料比较少,根据我们自己压测结果 2c2g Leader节点可支持撑仅4000qps。
四、参考文档
下面这篇文档推荐,总体来说还是图文详细,适合整体了解。