本文共 807 字,大约阅读时间需要 2 分钟。
服务发现是基于微服务架构的关键原则之一。Netflix服务发现服务器和客户端是Eureka。可以将服务器配置和部署为高可用性,每个服务器将注册服务的状态复制到其他服务器。
当然,目前也存在较多的基于服务发现的中间件,下图对其进行了一些比较:
Euraka 使用时需要显式配置健康检查支持;Zookeeper,Etcd 则在失去了和服务进程的连接情况下任务不健康,而 Consul 相对更为详细点。
Consul 通过 WAN 的 Gossip 协议,完成跨数据中心的同步;而且其他的产品则需要额外的开发工作来实现;
除了 Eureka ,其他几款都能够对外支持 k-v 的存储服务,所以后面会讲到这几款产品追求高一致性的重要原因。而提供存储服务,也能够较好的转化为动态配置服务哦。
Zookeeper的跨语言支持较弱,其他几款支持 http11 提供接入的可能。Euraka 一般通过 sidecar的方式提供多语言客户端的接入支持。Etcd 还提供了Grpc的支持。 Consul除了标准的Rest服务api,还提供了DNS的支持。
Zookeeper 支持服务器端推送变化,Eureka 2.0(正在开发中)也计划支持。 Eureka ,Consul,Etcd则都通过长轮询的方式来实现变化的感知;
除了 Zookeeper ,其他几款都默认支持 metrics,运维者可以搜集并报警这些度量信息达到监控目的;
Consul,Zookeeper 支持ACL,另外 Consul,Etcd 支持安全通道https.
目前都有相对应的 boot starter,提供了集成能力。
总体来讲,各个中间件基本都能满足一般项目的开发。
转载地址:http://vpbai.baihongyu.com/