zookeeper 做注册中心详细介绍

Posted sqtce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 做注册中心详细介绍的主要内容,如果未能解决你的问题,请参考以下文章

利用Zookeeper实现分布式锁及服务注册中心

(十二) 构建dubbo分布式平台-zookeeper注册中心安装

18道高频Dubbo面试题答案详细解析

dubbo注册中心介绍

Dubbo注册中心介绍

Zookeeper注册中心概述