黑马程序员技术交流社区
标题:
【郑州校区】品优购电商系统部署 Day 1 三
[打印本页]
作者:
我是楠楠
时间:
2020-4-7 10:33
标题:
【郑州校区】品优购电商系统部署 Day 1 三
【郑州校区】品优购电商系统部署 Day 1 三
2.Zookeeper
集群
2.1 Zookeeper
集群简介
2.1.1
为什么搭建
Zookeeper
集群
大部分分布式应用需要一个主控、协调器或者控制器来管理物理分布的子进程。目前,
大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形
成通用、伸缩性好的协调器,
zookeeper
提供通用的分布式锁服务,用以协调分布式应用。
所以说
zookeeper
是分布式应用的协作服务。
zookeeper
作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等
待。所以可以通过
zookeeper
集群解决。
下面是
zookeeper
集群部署结构图:
1.png
(141.04 KB, 下载次数: 13)
下载附件
2020-4-7 10:32 上传
2.1.2
了解
Leader
选举
Zookeeper
的启动过程中
leader
选举是非常重要而且最复杂的一个环节。那么什么是
leader
选举呢?
zookeeper
为什么需要
leader
选举呢?
zookeeper
的
leader
选举的过程又是什
么样子的?
首先我们来看看什么是
leader
选举。其实这个很好理解,
leader
选举就像总统选举一样,
每人一票,获得多数票的人就当选为总统了。在
zookeeper
集群中也是一样,每个节点都会
投票,如果某个节点获得超过半数以上的节点的投票,则该节点就是
leader
节点了。
以一个简单的例子来说明整个选举的过程
.
假设有
五台
服务器组成的
zookeeper
集群
,
它们的
id
从
1-5,
同时它们都是最新启动的
,
也
就是没有历史数据
,
在存放数据量这一点上
,
都是一样的
.
假设这些服务器依序启动
,
来看看会
发生什么 。
1)
服务器
1
启动
,
此时只有它一台服务器启动了
,
它发出去的报没有任何响应
,
所以它的
选举状态一直是
LOOKING
状态
2)
服务器
2
启动
,
它与最开始启动的服务器
1
进行通信
,
互相交换自己的选举结果
,
由于
两者都没有历史数据
,
所以
id
值较大的服务器
2
胜出
,
但是由于没有达到超过半数以上的服务
器都同意选举它
(
这个例子中的半数以上是
3),
所以服务器
1,2
还是继续保持
LOOKING
状态
.
3)
服务器
3
启动
,
根据前面的理论分析
,
服务器
3
成为服务器
1,2,3
中的老大
,
而与上面不
同的是
,
此时有三台服务器选举了它
,
所以它成为了这次选举的
leader.
4)
服务器
4
启动
,
根据前面的分析
,
理论上服务器
4
应该是服务器
1,2,3,4
中最大的
,
但是
由于前面已经有半数以上的服务器选举了服务器
3,
所以它只能接收当
小弟
的命了
.
5)
服务器
5
启动
,
同
4
一样
,
当小弟
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2