Zookeeper分布式高性能协调服务-what、why、how

目录

zookeeper的由来

 zookeeper是什么?设计目的?

zookeeper带来的问题

 zookeeper有什么?

  zk特性

 ZK主从集群

ZAB协议


zookeeper的由来

 说到这里,zookeeper是为了解决分布式集群带来的问题,就得说说什么是分布式?分布式集群带来了哪些问题?zookeeper解决了什么问题?


1.什么是分布式?分布式两个核心:任务分解和节点通信!任务分解即:项目的业务拆分成多个子系统,部署在不同的服务器上。节点通信即各个子系统部署节点之间的通信。


2.分布式和集群带来的问题?说分布式是把项目的业务拆分成多个子系统,因为各个子系统依然要保证其高可用性,所以会提到集群!


小结:由此得出结论,分布式高可用架构缺少一个分布式协调机制!由此zookeeper应运而生,来解决分布式带来的问题

 zookeeper是什么?设计目的?

 1.zk是什么?

是一个分布式的,开放源码的分布式应用程序协调服务!


2.zk设计目的?

1. 做注册中心(解决节点通信问题)

2. 分布式锁、配置文件中心(解决资源共享问题)


zookeeper带来的问题

 zk不是完美的,它在解决问题的同时也会产生问题,为了更好地使用zk,则需要解决其中一些问题才可用!

既然zookeeper是在分布式环境下提供服务的,那么它必须要解决的问题就是单点问题,因此zookeeper是一个主备的结构。zookeeper 存在leader,follower,observer三种角色,这三种角色在实际服务集群中都是服务节点。由以上三种角色的介绍可知,zookeeper中所有请求都是交给leader处理的,因此,如果leader挂了,zookeeper就无法再提供服务,这就是单点问题。

所幸有了集群在leader挂了之后,follower能够通过选举成为新的leader。 那么问题来了,follower是如何被选举成为新的leader的?新的leader又是如何保证数据的一致性的?这些问题的答案都在于zookeeper所用的分布式一致性协议ZAB。

ZAB协议是为zookeeper专门设计的一种支持奔溃恢复的原子广播协议。虽然它不像Paxos算法那样通用通用,但是它却比Paxos算法易于理解。


小结:以上zk带来的单点问题,数据一致性问题及其对应解决方案的简单介绍!

 zookeeper有什么?

 将从zk本身,及它的集群两方面来讲解


  zk特性

小结: zk本身的数据模型决定了znode节点的特性,Watcher机制通过监控znode的会话状态来动态感知节点上下线!


 ZK主从集群

上面提到了为什么要用集群,以及集群带来的问题及解决方案,下面就详细介绍下是如何解决的。首先zk安装就不讲了,安装3台集群,配置集群,怎么配置呢?

第一个port是数据通信的端口,第二个port是用来节点间重新选举leader的端口!关于myid就先不详说,下面会介绍。配置完之后一个基本的集群就产生了,启动三台zookeeper,就会设计leader的选举,那么就要讲下ZAB协议啦!


ZAB协议

崩溃恢复和原子广播,上面提过leader进入崩溃恢复的状态会进行重新选举leader,同步节点之间的状态达到数据一致。那么问题来了,什么时候leader会进入崩溃恢复状态?什么情况算是数据达到一致?

小结:

今天还是讲了不少东西的,什么是分布式,分布式带了的问题,zookeeper解决分布式带来的问题,zookeeper的高可用性及其带来的问题,ZAB协议解决zookeeper集群所带来的问题,简单讲了下关于ZAB协议,本篇博客就先讲到这里,下篇博客会重点讲ZAB协议!敬请期待,喜欢就请给小编点个赞哦!

ps:如果不能为什么要有分布式的,自行补充0!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值