检查状态

集群

doc https://www.rabbitmq.com/docs/man/rabbitmqctl.8

1
2
3
4
5
6
[root@rabbitmq-2 ~]# rabbitmqctl stop_app  #停止节点
[root@rabbitmq-2 ~]# rabbitmqctl reset #如果有数据需要重置,没有则不用
[root@rabbitmq-2 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq-1 #添加到磁盘节点
Clustering node 'rabbit@rabbitmq-2' with 'rabbit@rabbitmq-1' ...
[root@rabbitmq-2 ~]# rabbitmqctl start_app #启动节点
Starting node 'rabbit@rabbitmq-2' ...

cluster_status

1
rabbitmqctl cluster_status

发生了网络分区

关注rabbitmqctl cluster_status字段 的partitions

模拟故障

1
2
3
4
iptables -A INPUT -p tcp --dport 25672 -j DROP
iptables -A OUTPUT -p tcp --dport 25672 -j DROP

iptables -L -n --line-number | grep DROP

节点2 日志

Network partition detected

xx-xx-x 18:41:32.196 [error] <0.2225.0> ** Node rabbit@rabbitmq1 not responding **
** Removing (timedout) connection **
xx-xx-x 18:41:32.197 [warning] <0.2858.0> Management delegate query returned errors:
[{<9600.1663.0>,{exit,{nodedown,rabbit@rabbitmq1},[]}}]
xx-xx-x 18:41:32.197 [info] <0.2613.0> rabbit on node rabbit@rabbitmq1 down
xx-xx-x 18:41:32.288 [info] <0.2613.0> Node rabbit@rabbitmq1 is down, deleting its listeners
xx-xx-x 18:41:32.289 [info] <0.2613.0> node rabbit@rabbitmq1 down: net_tick_timeout

恢复,确认序号

1
2
iptables -D INPUT 3
iptables -D OUTPUT 1

进程

rabbitmqctl list_queues

rabbitmqctl list_queues name messages_ready messages_unacknowledged

恢复

手动

重启的方法建议使用 rabbitmqctl stop_apprabbitmqctl start_app

自动

RabbitMQ集群分区处置模式设置:

cluster_partition_handling 这个选项有三个可能的值:ignore, autoheal, pause_minority。

ignore: 这是默认设置,意味着RabbitMQ在网络分区发生时将无视网络分区,每个分区将独立运作,分区解决后将要耗费很长时间来同步数据。

autoheal: 这个设置会在发生网络分区时,强制节点从最大的分区(copying its state)中自我恢复,这个过程称为“healing”,healing过程结束后可即刻恢复服务。(最常用的设置,通过RabbitMQ自行恢复)

pause_minority:这个设置会在网络分区发生时,检测哪个分区的节点最多,然后暂停节点较少的分区。这可能会导致RabbitMQ服务暂停,但是当分区修复后,服务可以立即恢复。

1
2
# /etc/rabbitmq/rabbitmq.conf
cluster_partition_handling = autoheal
点击打赏
文章目录
  1. 1. 集群
    1. 1.1. cluster_status
    2. 1.2. 发生了网络分区
      1. 1.2.1. 模拟故障
      2. 1.2.2. 恢复,确认序号
    3. 1.3. 进程
    4. 1.4. 恢复
      1. 1.4.1. 手动
      2. 1.4.2. 自动
载入天数...载入时分秒... ,