服务的注册与发现(Consul、zookeeper、etcd、eureka、Nacos)

一. 对比常用的注册中心

Consul、zookeeper、etcd、eureka、Nacos

Feature

Consul

Zookeeper

Etcd

Eureka

Nacos

服务健康检查

 服务状态,内存,硬盘等

 (弱)长连接,keepalive

 连接心跳

 可配支持

传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查

多数据中心

 支持

 —

 —

 —

支持

kv存储服务

 支持

 支持

 支持

 —

 支持

一致性

  Raft

 Paxos

  Raft

 —

Raft

CAP定理

 CP

 CP

 CP

 AP

CP: 配置中心

AP: 注册中心

使用接口

(多语言能力)

 支持http和dns

 客户端

 http/grpc

 http(sidecar)

Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent

watch支持

 全量/支持long polling

 支持

 支持 long polling

支持 long polling/大部分增量

支持 long polling/大部分增量

自身监控

 metrics

 —

 metrics

 metrics

 

安全

 acl /https

 acl

 https支持(弱)

 —

acl

Spring Cloud集成

 已支持

 已支持

 已支持

 已支持

 已支持

备注

可以作为eureka的替代使用

 

 

2.0不在更新

1. 支持dubbo 

2. spring-cloud-alibaba支持

二. 个人总结

springcloud中实现的注册中心

1. 当项目数量少于1000时, 可以考虑 eureka 1.x ; 2.0版本官方不在维护

2. 使用最新的可以考虑使用 Consul, 使用Raft实现一致性的同时, 尽量保证可用, 支持 k8s

3. 使用dubbo, 可以使用 zookeeper、 nacos,  推荐使用 nacos

4. nacos是阿里来源的集配置中心和注册中心与一体的, 新版本 AP 支持性能良好, 天然支持 dubbo

               在 spring-cloud-alibaba 项目中, 很好的实现配置中心和注册中心

              支持 k8s、spring 系列、 docker 和 多注册中心的同步

              2.0 规划 屏蔽 同步 k8s 和 spring 管理的差异、 支持 istio

5. 新项目可以使用 nacos

 
posted @ 2021-01-06 23:07  zbs666  阅读(2431)  评论(1编辑  收藏  举报