给小明打电话,把电话记录到通讯录(服务注册),通过通讯录找到小明电话(服务发现)
注册中心:服务注册,服务发现,健康检测
主流注册中心介绍:
1:Eureka: 【juˈriːkə】
Eureka2.0已经停止维护
Eureka Server : 注册中心的server端,向服务应用中心提供服务注册,发现,健康检查等能力
Eureka client:微服务应用程序客户端,和eureka server通信
多个server互相复制同步数据,不是强一致算法。有数据写入后同步其他计算器。
client定时和server进行心跳检查,失败后需要重新注册。
Eureka不支持订阅,需要消费方定期轮询。
2:ZooKeeper
分布式,开源的协调服务
持久节点:创建后会一直存在
临时节点:生命周期和客户端绑定
多个节点,通过选举产生leader。paxos(帕克索斯)强一致性算法。一致性算法之paxos算法
服务者在启动时自动注册,变更自动推送消费者。
3:Consul
具有丰富的控制面板功能的服务注册管理工具,支持kv存储
采用raft一致性算法
client:重定向所有请求到server,主要参与LAN gossip【ˈɡɒsɪp】协议池,占用很少资源,消耗很少网络带宽。
Server:参与raft协议,维护集群状态,重定向请到leader
datacenter:私有的网络环境,去除了在公共网络上的环境交互
建议选基数节点,因为偶数节点在选举会存在瓜分选票的情况。
日志复制过半时才算写入成功。所以server数量太多日志同步会存在很大延迟,一般部署3个节点。
consul 与k8s Server互相同步,可以让那个k8s生态和非k8s生态互相访问
4:Etcd
强一致性,分布式kv存储系统
接口简单,读写可以使用标准http,如curl
kv存储
watch机制,变更通知
总结对比: