Reproduce RabbitMQ network partition scenario

此生再无相见时 提交于 2019-12-09 11:56:05

问题


I would like to reproduce the network partition scenario with all the three modes - ignore, autoheal and pause_minority. How can I achieve this? I tried stopping(/sbin/service reboot) one of the nodes of the cluster but this didn't cause any network partitioning. I also tried deleting the mnesia on one node to create inconsistent mnesia across the cluster but that also didn't help.


回答1:


In order to simulate a network partition you can block the outgoing connections using iptables

Suppose you have 3 nodes:

node1 - ip : 10.10.0.1
node2 - ip : 10.10.0.2
node3 - ip : 10.10.0.3

After creating the cluster, go to node 2 for example and

iptables -A OUTPUT -d 10.10.0.1 -j DROP

In this way you blocked the connections and the node will go in network partition.

Then

iptables -F

to restore the network.




回答2:


Adding more details to above answer:

Execute below command either in node2 or node3 to block the connection from other node(s)

sudo iptables -A INPUT -s 10.10.0.1 -j DROP

To allow the connection from other nodes(s)/delete the firewall rule that we created earlier

sudo iptables -D INPUT -s 10.10.0.1 -j DROP

To view existing firewall rules

iptables --list

Note: In few cluster setup, the net partition occurs only when the nodes whose connections were blocked earlier (via 'iptables' commands) are able to communicate with each other again. So, try block and unblock connections after 60 seconds (which is default 'net_ticktime' value)



来源:https://stackoverflow.com/questions/35795308/reproduce-rabbitmq-network-partition-scenario

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!