双机脑裂(split-brain)解决办法

一、 What does "split-brain" mean?

"Split brain" is a condition whereby two or more computers or groups of computers lose contact with one another but still act as if the cluster were intact. This is like having two governments trying to rule the same country. If multiple computers are allowed to write to the same file system without knowledge of what the other nodes are doing, it will quickly lead to data corruption and other serious problems.

二、解决办法

        小提一下冗余心跳,但是该方式治标不治本,只能减少脑裂发生的概率。

1、踢出集群

        (1)Quorum Algorithm

        Quorum Algorithm(选举算法):集群内各节点通过心跳收集彼此的健康状况,收集到一个心跳就获得一票,假设集群内3个节点(A、B、C),节点A获得B和自己一票,节点B获得自己和A一票,而节点C只有自己,则节点C被踢出集群。

        (2)Quorum Device

        Quorum Algorithm有个缺陷:集群内如果只有2个节点,那就悲剧了。因此,需要引入第3个设备来解决此问题,此时,Quorum Device粉墨登场。

        Quorum Device(Quorum Disk):这个设备也占一票,这一票由先到请求者获得,这样就能顺利的踢出另一个节点。

2、IO隔离

        做了上面的操作后,很多人就开始稳坐钓鱼台了,实际,悲剧还在深海。节点虽然被踢出,但是仍然有可能处于active状态,这样,这家伙还能操作共享文件资源,危机依然挥之不去。银弹来了,IO隔离(IO Fencing)可以阻止”灰太狼来羊村“。

        IO Fencing主要有两种方式,分别如下:

        (1)硬件方式

                (A)SCSI Reserve/Release设备

                正常节点能够使用SCSI Reserve/Release命令锁住存储设备,不正常节点发现存储设备被锁后,就用suicide(自杀)的方式来了结自己以使自己恢复正常,纯爷们儿。

                (B)STONITH(Shoot The Other Node In The Head)

                当一个节点发生故障时,另一个节点如果检测到了,就会通过串口来控制故障节点的电源开关以暂时断电然后又上电来重启故障节点。手好黑啊,好在还没彻底落井下石。

        (2)软件方式

        ORACLE RAC就是典型代表,直接重启故障节点以保证故障节点不能继续访问共享数据。具体可参考ORACLE,也可以参考这里

转载于网络!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
split-brain是指在分布式系统中出现网络分区,导致系统中的节点无法相互通信,从而导致系统的不一致性和数据丢失的问题。在RabbitMQ中,当出现网络分区时,不同分区的节点会认为不属于自身分区的节点已经挂掉,对于队列、交换器、绑定的操作只对当前分区有效,它们各自为政。如果配置了镜像队列,并且涉及到多个网络分区中的节点,每个网络分区都会有一个master节点,这些队列在各个网络分区中是相互独立的。当网络恢复时,网络分区的状态仍然保持,除非采取一些措施来解决它。在RabbitMQ集群中,默认情况下需要手动干预才能恢复网络分区问题。恢复步骤会因节点数量和应用复杂性而有所不同,对于只有两个节点的情况,恢复步骤相对简单。然而,对于多节点和复杂应用的情况,手动恢复会更加复杂和困难,容易导致数据丢失和业务中断。RabbitMQ将队列、交换器和绑定等信息存储在Mnesia数据库中,而与网络分区相关的细节也与Mnesia的行为有关。如果网络中断后恢复正常,Mnesia会记录下发生网络分区的情况,并将其记录在RabbitMQ的服务日志中。 #### 引用[.reference_title] - *1* *2* *3* [RabbitMQ脑裂的模拟和分析](https://blog.csdn.net/ywq550977359/article/details/123220961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值