在实际的项目选型中,该如何考虑选择合适的注册中心呢?
我在网上找了很多资料,但都基本不是最新的,比如说几乎所有的资料都还在说只有Eureka支持Spring Cloud的集成,其他注册中心均不支持Spring Cloud。因此,就想要自己写一篇
最新最全
的注册中心的特点比较的文章,来帮助自己以及亲爱的粉丝们重新梳理他们的特点,以保证以更全方位的考虑来进行项目选型
序号
比较项
Eureka
zookeeper
Nacos
Consul
1
集群结构
平级
主从
支持平级和主从
主从
2
集群角色
主人
Leader、follower observer
leader、follower、candidate
server-leader、server以及client
3
是否可以及时知道服务状态变化
不能及时知道
会及时知道
不能及时知道
不能及时知道
4
一致性协议(CAP)
注重可用性(AP)
注重一致性(CP)
支持CP和AP-如何实现
注重一致性(CP)
5
雪崩保护
有
没有
有
没有
6
社区是否活跃
Eureka2.0不再维护了
持续维护
持续维护
持续维护
7
管理端
有现成的eureka管理端
没有现成的管理端
有现成的管理端
有现成的管理端
8
负载均衡策略
使用ribbon实现
一般可以直接采用RPC的负载均衡
权重/metadata/Selector
Fabio
9
权限控制
无
使用ACL实现节点权限控制
RBAC-用户、角色、权限
ACL
10
Spring Cloud集成
支持
支持
支持
支持
11
健康检查
Client Beat
Keep Alive
TCP/HTTP/MYSQL/Client Beat
TCP/HTTP/gRPC/Cmd
12
自动注销实例
支持
支持
支持
不支持
13
访问协议
HTTP
TCP
HTTP/DNS
HTTP/DNS
14
是否可用作配置中心
否
是
是
是
15
多数据中心
不支持
不支持
不支持
支持
16
跨注册中心同步
不支持
不支持
支持
支持
17
Dubbo集成
不支持
支持
支持
不支持
18
K8S集成
支持
支持
支持
支持
1 集群结构
Eureka的集群架构本身就是平级结构
zookeeper和consul则均为主从结构
Nacos则支持平级关系和主从这两种集群架构,常用的是后者
具体架构是怎样的,可以继续往下看~
2 集群角色
我发现,集群架构和角色往往是一个注册中心的核心功能,搞清楚这两点,基本上对于这个注册中心已经掌握了一半了。来分别看看四个注册中心的集群角色吧~
1)
Eureka
:集群各节点都是平起平坐的关系,数据是相互复制的,因此各个节点都是主人角色
如图,服务端
Eureka-server
会存储服务实例信息,通过
复制
实现服务实例信息在各个节点同步,并定期去检查服务实例信息状态;
各个客户端也会通过健康检查等机制进行自我状态检查