注册中心选型篇-四款注册中心特点超全总结
序号 | 比较项 | 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集成 | 支持 | 支持 | 支持 | 支持 |
具体来说是一主多从结构,就是有一个leader,多个follower,以及只负责读操作、不参与选举的observer
下面是关于三个角色之间的关系图
a)首先图上是有client和server两大角色。client通过TCP与其中一个server建立连接。其中server分为leader、follower,以及observer三个角色
leader:负责投票的发起和决议
follower:同步leader的状态,参与leader选举。将写操作转发给leader,并参与“过半写成功”策略
observer:同步leader的状态,将写操作转发给Leader。不参加投票选举过程,也不参加写操作的“过半写成功”策略
b)当leader因为网络或者其他原因挂掉之后,会重新在follower里面选择一个新的leader。
c)observer 机器可以在不影响写性能的情况下提升集群的读性能。
2)同时微服务的bootstrap.properties 需配置如下选项指明注册为临时/永久实例
#false-注册永久实例,true-注册为临时实例
spring.cloud.nacos.discovery.ephemeral=false
三 总结
评论