前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Zookeeper 分布式系统企业级开发实战与应用(2)- 分布式系统单点故障的解决方案(分布式锁)

Zookeeper 分布式系统企业级开发实战与应用(2)- 分布式系统单点故障的解决方案(分布式锁)

作者头像
风间影月
发布2018-04-04 17:46:08
8570
发布2018-04-04 17:46:08
举报
文章被收录于专栏:BeJavaGodBeJavaGod

1.分布式系统中的单点故障:分布式系统通常都会使用主从模式,就是一个主节点计算机连接多个处理从节点。主节点负责分发任务,从节点负责处理任务,但是一旦主节点宕机时,那么整个系统瘫痪,此时这就是我们所说的单点故障

2.传统形式解决方案(备胎模式):采用一个备用节点,这个备用节点以心跳机制定期给当前主节点发送ping包,主节点收到ping包以后向备用节点发送回复,备用节点收到回复表明当前的主节点还存活,此时整个系统正常运行。

当master主节点挂了,他没有回复备用主节点,这个时候备胎转正,两个从节点向这个备用主节点汇报任务。

3.传统形式主备的隐患:如果网络出问题,心跳机制得不到回复,那么备胎也会立即转正,此时就会有两个master主节点,那么从节点会向这两个主节点同时汇报任务。

为了避免这样的情况,我们就引入了Zookeeper,可以有效的防止这样的情况出现。

Zokeeper的解决方案

1.启动两个主备master节点

启动两个主节点,“主节点-A”和“主节点-B”启动后,都会向ZK注册。注册完后分别为“master-1001”,“ master-1002”,注册完后进行选举,编号最小的节点将在选举中获胜获得锁成为主节点,“主节点-A“成为master,然后”备用主节点-B”将被阻塞成为一个备用的节点。此时两个主备master节点就相互协调了。

2. Master主节点出现故障

如果“主节点-A”出现故障导致宕机,这时他所注册的节点将被自动删除,ZooKeeper会自动识别节点的变化,然后再次发出选举,这时"主节点-B"将在选举中获胜,替代"主节点-A"成为主节点。

3. Master主节点A重新恢复或者有新的其他备用节点加入

如果原来的主节点A由运维修复了,他会重新向ZooKeeper注册一个新的节点,这时取名为“master-1003”,zk会发现节点变化后会再次发动选举,这时候“主节点-B”选举获胜继续担任“主节点”,“主节点-A”会担任备用节点,后续加入的节点也仍然是备用节点,此时赞的单点故障就解决了

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BeJavaGod 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档