单点故障(转自:冻住丶不许走的博客)

什么是单点故障

通常分布式系统采用主从模式,一个主节点连接多个从节点,主节点负责分发任务,而子节点负责处理业务,当主节点发生故障时,会导致整个系统发故障,我们把这种故障叫做单点故障。

传统解决单点故障问题

一般会多加一个备用主节点,备用主节点会发送一个ping包给主节点,主节点收到这个ping包后会给备用主节点相应一个ack字节包作为回应,备用主节点通过是否收到ack字节包来判断主节点是否正常运行,没有收到则则认为主节点已经故障并顶替主节点的位置。
不过当出现网络震荡的时候导致主节点接受数据时丢失一部分数据也就是少包,会导致备用子节点认为主节点已经故障而去顶替主节点而导致多主的现象,这时就要加入一个分布式锁的概念。
分布式锁是为了控制多个进程访问同一资源时,这个资源希望被有序访问,主要控制进程的加锁,解锁,锁超时。让多个多个进程有序访问服务器。
分布式协调可以解决多个进程的同步控制,主要核心是实现分布式锁
zookeeper是分布式协调服务,是为了实现分布式锁,的结构是树状结构,子节主要由四个部分组成,节点的引用,数据,权限,元数据组成。

Zookeeper实现服务注册与发现

分布式锁主要由Zookeeper实现,两个主节点会在Zookeeper注册一个节点,注册完后编号最小的节点就会被Zookeeper任命为主节点,而其他的节点会被加锁而被阻塞作为备用主节点。Zookeeper会给主节点不定时发送ping包,主节点会给Zookeeper相应的包,当能够收到者认为主节点正常,当接收不了则会给下一个备用子节点发送信息任命为主节点,而前面的主节点如果是因为故障而给Zookeeper发送不了响应的包则会被Zookeeper直接删除,如果因为网络故障或其他不是本身导致发送不了响应的包给Zookeeper时,也会被Zookeeper从列表里删除,但是这个主节点是正常的还可以继续使用,Zookeeper会让这个节点作为重生节点重新注册成为备用的主节点。

原文位置
原文位置:https://blog.csdn.net/weixin_43739465/article/details/84328554

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值