注册中心eureka,consul,zooKeeper,etcd选型
最近一年来一直在关注微服务系列,而它必不可缺少的组件就是注册中心。目前市面上辣么可以作为注册中心组件,那该如何选型?
特性 | Consul | zooKeeper | etcd | eureka |
编写语言 | go | Java | go | java |
客户端支持 | http, dns | 跨语言弱,Curator组件 | http, Etcd3支持grpc | http, 非java(sidecar) |
多数据中心 | 支持 |
|
|
|
KV存储 | 支持 | 支持 | 支持 |
|
健康检查 | 服务状态、内存、硬盘等 | (弱)长连接,keepalive | 连接心跳 | 可配支持 |
watch支持 | 全量/支持长轮询 | 支持 | 支持长轮询 | 支持长轮询, Eureka 2.0(正在开发中)也计划支持 |
自身监控 | metrics |
| metrics | metrics |
安全 | acl /https | acl | https支持(弱) |
|
一致性算法 | raft | paxos | raft |
|
CAP理论 | CP | CP(牺牲可用性) | CP(牺牲可用性) | AP(一致性弱) |
spring cloud | 已支持 | 已支持 | 已支持 | 已支持 |
结论:总的来看,目前Consul 自身功能,和 spring cloud 对其集成的支持都相对较为完善,而且运维的复杂度较为简单(对docker集成性更好,使用Docker registrator可以基于容器发现及注册,而且对nginx的支持性也较好),Eureka 设计上比较符合场景,但还需持续的完善。
还没有评论,来说两句吧...