在分布式微服务架构中,服务注册发现组件(通常称为服务注册中心)往往有着举足轻重的作用,它的性能与稳定可能会直接影响到整个服务的状态,比如Spring Cloud中的Eureka、Dubbo中的Zookeeper等等,接下来我们就gRPC微服务中最常见的服务注册中心etcd,来讲述下两者在具体是怎样结合使用的。
etcd介绍
etcd是一种强一致性的分布式键值存储组件,使用Raft算法,由于CAP理论,没有一种服务注册中心能够完全兼顾C、A、P,只能偏向于CP或AP,etcd作为偏向CP的分布式服务注册中心,利用Go语言编写,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它在网络分区期间优雅地处理领导者选举,并且可以容忍机器故障,即使在领导者节点中也是如此。
etcd操作简单整洁,使用HTTP协议和JSON文件格式进行存取键值对键值对存储,类似于Zookeeper更够根据值的变化快速响应,利用TLS增强安全性,具体有如下几个特点:
- 简单:包括一个定义良好、面向用户的API
- 安全:实现了带有可选的客户端证书身份验证的自动化TLS
- 快速:每秒10000次写入的基准速度
- 可靠:使用Raft算法实现了强一致、高可用的服务存储目录
服务注册中心
包含服务注册中心的微服务架构中主要有三种角色,分别是:
- 服务注册中心&#x