zookeeper 做注册中心详细介绍

千金一刻莫空度,老大无成空自伤。这篇文章主要讲述zookeeper 做注册中心详细介绍相关的知识,希望能为你提供帮助。
注册中心概念注册中心涉及三大角色1、服务提供者
2、服务消费者
3、注册中心
他们之间的关系主要是1、各个服务启动的时候,将自己网络地址等信息记录到注册中心
2、服务消费者从注册中心查询服务提供者提供的服务,并通过对应的地址调用服务提供者的 api
3、微服务与注册中心使用心跳机制通信,如果注册中心与微服务长时间无法通信,就会注销该服务实例


注册中心架构图:

zookeeper 做注册中心详细介绍

文章图片

????
注册中心的主要作用在微服务架构中,注册中心主要起到了协调者的作用,主要有以下功能
1、服务发现
服务注册/反注册:保存服务提供者和服务调用者的信息
服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送的功能
服务路由(可选):具有筛选整合服务提供者的能力。
2、服务配置
配置订阅:服务提供者和服务调用者订阅微服务相关的配置
配置下发:主动将配置推送给服务提供者和服务调用者
3、服务健康检测
检测服务提供者的健康情况


Zookeeper 概述ZooKeeper 主要为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。曾经是 Hadoop 项目中的一个子项目,用来控制集群中的数据,目前已升级为独立的顶级项目。很多场景下也用它作为 Service 发现服务解决方案。


ZooKeeper 是基于 CP 来设计的,即任何时刻对 ZooKeeper 的访问请求能得到一致的数据结果,同时系统对网络分割具备容错性,但是它不能保证每次服务请求的可用性。从实际情况来分析,在使用 ZooKeeper 获取服务列表时,如果 zookeeper 正在选主,或者 ZooKeeper 集群中半数以上机器不可用,那么将无法获得数据。所以说,ZooKeeper 不能保证服务可用性。
Zookeeper(数据一致性)数据同步分析
我们知道 Zookeeper 集群在选举结束之后,leader 节点将进入 LEADING 状态,follower 节点将进入 FOLLOWING 状态;此时集群中节点将进行数据同步操作,以保证数据一致。 只有数据同步完成之后 Zookeeper 集群才具备对外提供服务的能力。


当节点在选举后角色确认为 leader 后将会进入 LEADING 状态,节点状态变更为 LEADING 之后会创建 leader 实例,并触发 lead 过程。
?
leader 与 follower 在数据同步过程中会执行如下过程:
  1. 接收 follower 连接
  2. 计算新的 epoch 值
  3. 通知统一 epoch 值
  4. 数据同步
  5. 启动 zk server 对外提供服务

?
follower 节点进入 FOLLOWING 状态后,follower 与 leader 在数据同步过程中会执行如下过程:
  1. 请求连接 leader
  2. 提交节点信息计算新的 epoch 值
  3. 数据同步
  4. 以上就是 zookeeper 的同步逻辑


?
?
?
?
?
?
?
?
?
【zookeeper 做注册中心详细介绍】?

    推荐阅读