支持服务发现组件对比


发布于 2020-08-09 / 32 阅读 / 0 评论 /
服务发现是微服务架构体系中必不可少的组件

1.服务发现具备的功能

主要是服务注册和服务发现。

1.1.服务注册

在服务治理框架中,通常会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机、端口号、版本号、通信协议等一些附加信息告知注册中心,注册中心会按服务名分类组织服务清单。

服务中心还会以心跳的方式去检测清单中的服务是否可用,若不可用需要从服务清单中剔除,大道排除故障服务的效果。

1.2.服务发现

在服务治理框架下,服务间的调用不再是通过制定具体的实例地址来实现(原来的webservice是这样的),而是通过向服务名发起请求调用来实现。所以服务调用方在调用服务提供接口的时候,并不知道具体的服务实例地址。因此调用方需要向服务注册中心咨询服务,并获得所有服务的实例清单,以实现对具体服务的访问。

2.服务发现组件

各种支持服务发现组件特性对比如下表所示:

特性

eureka

consul

zookeeper

服务健康检查

可配支持

服务状态、内存、硬盘等

(弱)长连接、keepalive

多数据中心

-

支持

-

kv存储服务

-

支持

支持

一致性算法

-

raft

paxos

CAP

ap

ca

cp

使用接口(多语言能力)

http(sidecar)

支持http和dns

客户端

watch支持

支持long polling/大部分增量

全量/支持long polling

支持

自身监控

metrics

metrics

-

安全

-

acl/https

acl

spring-cloud集成

已支持

已支持

已支持

以上服务发现的软件中,Euerka 和 Consul 使用最为广泛。

据说Eureka 2.X 遇到困难停止开发了,但其实对国内的用户影响甚小,一方面国内大都使用的是 Eureka 1.X 系列。