服务的注册与发现(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

 

from:https://www.cnblogs.com/lovezbs/p/14244007.html