博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java之品优购部署_day01(2)
阅读量:5978 次
发布时间:2019-06-20

本文共 1124 字,大约阅读时间需要 3 分钟。

2.Zookeeper 集群

2.1 Zookeeper 集群简介
2.1.1 为什么搭建 Zookeeper 集群
大部分分布式应用需要一个主控、协调器或者控制器来管理物理分布的子进程。目前,
大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形 成通用、伸缩性好的协调器,zookeeper 提供通用的分布式锁服务,用以协调分布式应用。 所以说 zookeeper 是分布式应用的协作服务。
zookeeper 作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等 待。所以可以通过 zookeeper 集群解决。
下面是 zookeeper 集群部署结构图:
Java之品优购部署_day01(2)

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,所以它只能接收当小弟的命了.

转载于:https://blog.51cto.com/13517854/2136492

你可能感兴趣的文章
go-fastdfs v1.2.6 发布,支持自定义认证,高性能、高可靠分布式文件系统
查看>>
##II 第四单元##管理系统中的简单分区和文件系统
查看>>
用flash测试你的ircd
查看>>
白话红黑树系列之二——红黑树的构建
查看>>
客户的一张表中出现重复数据,而该列由唯一键约束,重复值如何产生的呢?...
查看>>
MySQL5.6中新增特性、不推荐使用的功能以及废弃的功能
查看>>
OnePlus安装Kali-NetHunter
查看>>
ios7 - Custom UItabbar has a gap in the bottom
查看>>
git 学习
查看>>
Spring .NET 1.2.0 发布
查看>>
MySQL索引失效的几种情况
查看>>
那一定都是你的错!- 一次FastDFS并发问题的排查经历
查看>>
Lua入门教程
查看>>
dd命令刻录u盘启动盘
查看>>
[浪子学编程][MS Enterprise Library]ObjectBuilder之创建策略祥解(一)
查看>>
Android中如何监听GPS开启和关闭
查看>>
C#中四舍五入的问题
查看>>
人月神话-焦油坑:编程的乐趣与苦恼
查看>>
【应用篇】Activiti显示器(抽象)简单的应用程序和服务的颗粒结合(两)
查看>>
如何应对百度的封杀和降权?
查看>>