master选举
什么是master选举?为什么需要master选举?
为实现提供7*24的客户服务,我们通常采用集群模式进行服务发布,进行接受请求 处理请求的即为master,为保证高可用性,通常采用
master-slave模式,当master出现宕机等故障导致无法提供正常的客户服务时,选举出一台slave机作为master提供客户服务,这个选举的过程就是master选举。
架构图:
zookeeper集群:
zookeeper
/master -- master节点
/servers -- 服务器列表节点
/ work server1
/ work server2
/ work server3
工作服务器集群
work server1
work server2
work server3
主题流程:
1/ 每一台工作服务器 在启动时都会向 work server 节点注册一个临时节点 写入自己的基本信息 (服务注册用以服务发现) 此处暂时不开展
2/ 每一台工作服务器 在启动时 都会向master节点 注册监听(监听master节点的删除时间),如果发生删除事件,则进行 创建master 操作。 -- 临时节点
启动时 进行 创建master操作 -- 临时节点
3/ 如果 master创建 操作 执行成功 则返回当前的master节点 并标记自己为master
如果创建不成功 则 读取master节点并返回
4 如果master节点读取不成功 说明读取时候发生了宕机,则重新开始 创建master操作
会话失效则创建的临时节点自动删除,服务器宕机直接导致连接超时,会话失效,
监听master的删除事件可以监控当前的服务器在线情况。如果发生宕机,则要开启新一轮的选主操作。
LeaderSelectorZklient 调度器 启动和停止workerver
WorkServer 服务器类 主工作类
Runningata 服务器的描述信息
网络抖动:
网络延迟从20ms变为5ms,网络抖动为15毫秒,描述的是网络不稳定性。
影响:
每一次由网络抖动所引发的master节点的宕机,将会导致master节点数据以及相关管理数据的迁移重新分配,因此应付
网络抖动策略就是 当之前的master节点 是自己时 就立马 发起创建master节点操作,这样就会提前创建master节点,
降低 数据重新迁移带来的影响, 而哪些 之前的master节点不是自己的服务器,意味者如果当前master节点选择为自己的话,
需要进行数据迁移,网络本身就不稳定了,再添加数据迁移无疑将会加大网络瓶颈。因此,当之前的master节点不是自己时,
延迟5秒创建master,给上一个master充足的时间,让他继续当老大。
应用场景:
网友评论