页面“Rabbitmq常用命令”与“Rabbitmq cluster on docker-compose”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
→‎NOTE
 
 
第1行: 第1行:
==创建vhost ==
+
 
 +
=站内资源=
 +
[[Rabbitmq常用命令]]
 +
=ins rabbitmq=
 +
==info==
 +
  适合于 3.610 and 3.7.5 版本
 +
-p 15672:15672 http访问端口
 +
-p 5672:5672 amqp访问端口
 +
-p 4369 #unable to connect to epmd (port 4369) on rabbitmq01: address (cannot connect to host/port)
 +
 
 +
==mq1==
 +
===Note===
 +
 
 +
有一种是 node1 不加别 , node2  add node1  ; node3  add node1 and node2  但是  rabbitmqctl cluster_status 可能看起来有些node alarms是down的 不过通过浏览器的不会
 
<pre>
 
<pre>
#创建 lxtx_hello vhost
 
rabbitmqctl  add_vhost  /hello
 
  
为用户设置virtual host 权限 用户为admin:
+
mkdir -p /home/data/docker-compose-mqcluster
rabbitmqctl  set_permissions  -p /hello  admin '.*' '.*' '.*'
+
cd /home/data/docker-compose-mqcluster
 +
##"登录容器请执行:rabbitmq-plugins enable rabbitmq_management 才可>使用WEB管理页面"
 +
vi docker-compose.yml
 +
 
 +
version: '3.1'
 +
services:
 +
  rabbitmq:
 +
    image: rabbitmq:3.6.10-management
 +
    ports:
 +
      - "5672:5672"
 +
      - "4369:4369"
 +
      #- "1883:1883"
 +
      - "15672:15672"
 +
      - "25672:25672"
 +
 
 +
    container_name: rabbitmqCluster01
 +
 
 +
    hostname: rabbitmq01
 +
    extra_hosts:
 +
      #- "rabbitmq01:192.168.10.211"#不要加上自己,不然会老是重启的
 +
      - "rabbitmq02:192.168.10.212"
 +
      - "rabbitmq03:192.168.10.213"
 +
    environment:
 +
 
 +
      RABBITMQ_ERLANG_COOKIE: 'rabbitmqCookie'  
 +
      RABBITMQ_DEFAULT_VHOST: /
 +
 
 +
      RABBITMQ_DEFAULT_USER: lxtxadmin
 +
 
 +
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq
 +
 
 +
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log
 +
 
 +
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log
 +
 
 +
    volumes:
 +
      - ./data/rabbitmq:/var/lib/rabbitmq
  
rabbitmqctl delete_vhost /hello
+
    restart: always 
 +
# docker-compose  up -d
 
</pre>
 
</pre>
  
==开启镜像模式==
+
==mq2==
 
 
 
<pre>
 
<pre>
#为 vhost  hello  开启镜像  ,名为  mirror4_hello
+
mkdir -p /home/data/docker-compose-mqcluster
rabbitmqctl set_policy -p hello  mirror4_hello  "^" '{"ha-mode":"all"}'
+
cd /home/data/docker-compose-mqcluster
Setting policy "mirror4_hello" for pattern "^" to "{\"ha-mode\":\"all\"}" with priority "0"
 
  
#默认vhost
+
vi docker-compose.yml
rabbitmqctl set_policy    mirror4_newcailuw "^" '{"ha-mode":"all"}'
+
   
 +
version: '3.1' 
 +
services:
 +
  rabbitmq:
 +
    image: rabbitmq:3.6.10-management
  
#书面一点的解说
+
    ports:
#这行命令在vhost名称为hello创建了一个策略,策略名称为mirror4_hello ,策略模式为 all 即复制到所有节点,包含新增节点,策略正则表达式为 “^” 表示所有匹配所有队列名称
+
      - "5672:5672"
 +
      - "4369:4369"
 +
      #- "1883:1883"
 +
      - "15672:15672"
 +
      - "25672:25672"
  
参数
+
    container_name: rabbitmqCluster02
 +
    hostname: rabbitmq02
 +
    extra_hosts:
 +
      - "rabbitmq01:192.168.10.211"
 +
      #- "rabbitmq02:192.168.10.212" #不要加上自己,不然会老是重启的
 +
      - "rabbitmq03:192.168.10.213"
 +
    environment:
 +
      RABBITMQ_ERLANG_COOKIE: 'rabbitmqCookie' 
 +
      RABBITMQ_DEFAULT_VHOST: /
 +
      RABBITMQ_DEFAULT_USER: lxtxadmin
 +
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq
 +
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log
 +
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log
 +
      CLUSTERED: 'true'
 +
      CLUSTER_WITH: rabbit1
 +
      RAM_NODE: 'true'
  
ha-mode:策略键
+
    volumes:
1.all 队列镜像在群集中的所有节点上。当新节点添加到群集时,队列将镜像到该节点
+
      - ./data/rabbitmq:/var/lib/rabbitmq
2.exactly 集群中的队列实例数。
+
    restart: always 
3.nodes 队列镜像到节点名称中列出的节点。
 
  
ha-sync-mode:队列同步
 
1.manual手动<默认模式>.新的队列镜像将不会收到现有的消息,它只会接收新的消息。
 
2.automatic自动同步.当一个新镜像加入时,队列会自动同步。队列同步是一个阻塞操作。
 
作者:全能程序猿
 
链接:https://www.jianshu.com/p/f81d62a8de02
 
来源:简书
 
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 
 
</pre>
 
</pre>
  
 +
==mq3==
 +
<pre>
 +
mkdir -p /home/data/docker-compose-mqcluster
 +
cd /home/data/docker-compose-mqcluster
  
[https://www.jianshu.com/p/f81d62a8de02 RabbitMQ镜像策略set_policy]
+
vi docker-compose.yml
  
[https://blog.csdn.net/wexiaoword/article/details/81352045 rabbitMq集群之镜像模式]
+
 +
version: '3.1' 
 +
services:
 +
  rabbitmq:
 +
    image: rabbitmq:3.6.10-management
  
https://www.rabbitmq.com/parameters.html
+
    ports:
 +
      - "5672:5672"
 +
      - "4369:4369"
 +
      #- "1883:1883"
 +
      - "15672:15672"
 +
      - "25672:25672"
  
https://www.rabbitmq.com/rabbitmqctl.8.html
+
    container_name: rabbitmqCluster03
  
= *  Rabbitmq 用户角色及权限控制=
+
    hostname: rabbitmq03
 +
    extra_hosts:
 +
      - "rabbitmq01:10.3.10.141"
 +
      - "rabbitmq02:10.3.10.142"
 +
    environment:
  
 +
      RABBITMQ_ERLANG_COOKIE: 'rabbitmqCookie' 
 +
      RABBITMQ_DEFAULT_VHOST: /
  
 +
      RABBITMQ_DEFAULT_USER: lxtxadmin
  
==RabbitMQ的用户角色分类:==
+
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq
none、management、policymaker、monitoring、administrator
 
  
==RabbitMQ各类角色描述:==
+
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log
 +
 
 +
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log
 +
      CLUSTERED: 'true'
 +
      CLUSTER_WITH: rabbit1
 +
      RAM_NODE: 'true'
 +
 
 +
    volumes:
 +
 
 +
      - ./data/rabbitmq:/var/lib/rabbitmq
 +
 
 +
    restart: always 
 +
</pre>
 +
 
 +
=config=
 +
==将节点2,3加入集群==
 
<pre>
 
<pre>
none
+
#在rabbit2机器进入容器的命令行
不能访问 management plugin
+
sudo docker exec -it rabbitmqCluster02 /bin/bash
  
management
+
#加入集群
用户可以通过AMQP做的任何事外加:
+
rabbitmqctl stop_app
列出自己可以通过AMQP登入的virtual hosts  
+
rabbitmqctl join_cluster rabbit@rabbitmq01
查看自己的virtual hosts中的queues, exchanges 和 bindings
+
rabbitmqctl start_app
查看和关闭自己的channels 和 connections
 
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。
 
  
policymaker 
+
rabbit3执行相同的命令
management可以做的任何事外加:
+
docker exec -it rabbitmqCluster03 /bin/bash
查看、创建和删除自己的virtual hosts所属的policies和parameters
+
rabbitmqctl stop_app
 +
rabbitmqctl join_cluster rabbit@rabbitmq01
 +
rabbitmqctl start_app
  
monitoring  
 
management可以做的任何事外加:
 
列出所有virtual hosts,包括他们不能登录的virtual hosts
 
查看其他用户的connections和channels
 
查看节点级别的数据如clustering和memory使用情况
 
查看真正的关于所有virtual hosts的全局的统计信息
 
  
administrator   
+
查询集群状态
policymaker和monitoring可以做的任何事外加:
+
rabbitmqctl cluster_status
创建和删除virtual hosts
+
</pre>
查看、创建和删除users
 
查看创建和删除permissions
 
关闭其他用户的connections </pre>
 
  
=Note=
+
== nginx 配置==
 
<pre>
 
<pre>
  
administrator一定能看到 cluster信息,manager不行
+
#如果是yum nginx  在放在 conf.d/mq.conf
 +
  server {
 +
        listen      80;
 +
        server_name  mq.com;
 +
 +
 
 +
        location / {
 +
            proxy_pass http://10.3.10.141:15672;
 +
            proxy_set_header X-Real-IP $remote_addr;
 +
            proxy_set_header Host $host;
 +
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 +
         
 +
        }
 +
    }
 +
 
 +
 
 +
NOTE  selinux  记得关掉  不然可能是502哦
 +
#SELinux设置
 +
getenforce  #查看SELINUX工作模式
 +
 
 +
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #禁用SELINUX
 +
setenforce 0 #临时禁用SELINUX,无需重启
 +
 +
 +
SELINUX=enforcing
 +
#此项定义selinux状态。
 +
#enforcing—是强制模式系统受selinux保护。就是你违反了策略,你就无法继续操作下去
 +
#permissive—是提示模式系统不会受到selinux保护,只是收到警告信息。permissive就是Selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来(警告信息)
 +
#disabled—禁用selinux。
  
monitoring  也可以
 
 
</pre>
 
</pre>
 +
==镜像模式==
 +
[https://wiki.linuxchina.net/index.php/Rabbitmq%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4#.E5.BC.80.E5.90.AF.E9.95.9C.E5.83.8F.E6.A8.A1.E5.BC.8F 开启镜像模式]
 +
 +
=troubleshooting =
 +
<pre>
 +
 +
1.docker-compose.yml文件报错
 +
ERROR: The Compose file './docker-compose.yml' is invalid because:
 +
services.rabbitmq.environment.CLUSTERED contains true, which is an invalid type, it should be a string, number, or a null
 +
 +
 +
CLUSTERED: true -->CLUSTERED: 'true'
 +
 +
 +
绑hosts的前进 不要全局FQ  SSR常常坑我们
  
  
=* 创建用户 =
+
</pre>
 +
==rabbitmq node not running==
 
<pre>
 
<pre>
   
+
  docker exec  -it af1934d27e21 /bin/bash
** 新增用户admin,密码1234
+
root@rabbitmq02:/# rabbitmqctl cluster_status
 +
Cluster status of node rabbit@rabbitmq02
 +
[{nodes,[{disc,[rabbit@rabbitmq01,rabbit@rabbitmq02,rabbit@rabbitmq03]}]},
 +
{alarms,[]}]
 +
 
 +
 
 +
 
 +
再想加入 报错
 +
:/# rabbitmqctl stop_app
 +
Stopping rabbit application on node rabbit@rabbitmq02
 +
 
 +
root@rabbitmq02:/# rabbitmqctl join_cluster rabbit@rabbitmq01
 +
Clustering node rabbit@rabbitmq02 with rabbit@rabbitmq01
 +
Error: unable to connect to node rabbit@rabbitmq02: nodedown
 +
 
 +
DIAGNOSTICS
 +
===========
 +
 
 +
attempted to contact: [rabbit@rabbitmq02]
 +
 
 +
rabbit@rabbitmq02:
 +
  * connected to epmd (port 4369) on rabbitmq02
 +
  * epmd reports node 'rabbit' running on port 25672
 +
  * TCP connection succeeded but Erlang distribution failed
 +
 
 +
  * Distribution failed unexpectedly while waiting for challenge: {error,
 +
                                                                  closed}
 +
 
 +
 
 +
current node details:
 +
- node name: 'rabbitmq-cli-69@rabbitmq02'
 +
- home dir: /var/lib/rabbitmq
 +
- cookie hash: /HHYeuND8Y2blMJ8WoOg1g==
 +
 
 +
root@rabbitmq02:/# rabbitmqctl start_app
 +
Starting node rabbit@rabbitmq02
 +
Error: unable to connect to node rabbit@rabbitmq02: nodedown
 +
 
 +
 
 +
DIAGNOSTICS
 +
===========
  
rabbitmqctl  add_user admin 1234
+
attempted to contact: [rabbit@rabbitmq02]
  
** 也可以使用rabbitmqctl命令更改密码
+
rabbit@rabbitmq02:
 +
current node details:
 +
- node name: 'rabbitmq-cli-69@rabbitmq02'
 +
- home dir: /var/lib/rabbitmq
 +
- cookie hash: /HHYeuND8Y2blMJ8WoOg1g==
  
rabbitmqctl change_password admin adm
+
root@rabbitmq02:/# rabbitmqctl start_app
 +
Starting node rabbit@rabbitmq02
 +
Error: unable to connect to node rabbit@rabbitmq02: nodedown
  
** 将admin加入到管理员组 赋予其management角色:
 
rabbitmqctl set_user_tags admin administrator
 
  
 +
DIAGNOSTICS
 +
===========
  
** 查看用户列表
+
attempted to contact: [rabbit@rabbitmq02]
  
rabbitmqctl  list_users</pre>
+
rabbit@rabbitmq02:
 +
  * connected to epmd (port 4369) on rabbitmq02
 +
  * epmd reports node 'rabbit' running on port 25672
 +
  * TCP connection succeeded but Erlang distribution failed
  
=运维常用命令=
+
  * TCP connection to remote host has timed out. Is the Erlang distribution using TLS?
==rabbitmqadmin==
 
<pre>
 
  
  
 +
current node details:
 +
- node name: 'rabbitmq-cli-97@rabbitmq02'
 +
- home dir: /var/lib/rabbitmq
 +
- cookie hash: /HHYeuND8Y2blMJ8WoOg1g==
  
 +
重启 docker 服务  再 如上添加 不过提示 The node is already a member of this cluster  所以应该是重启docker 就好了
 
</pre>
 
</pre>
==NOTE==
 
注意  运维 例如查看队列 是用  rabbitmqadmin ,rabbitmqadmin  --username=admin  --password=333  list queues  不是  rabbitmqctl list_queues 早上 同桌也说是这个 ,搞半天 还以为集群坏了呢 还看什么日志
 
  
=* see alse=
+
=see also=
[https://blog.csdn.net/zyz511919766/article/details/42292655 RabbitMQ用户角色及权限控制]
+
 
 +
https://www.rabbitmq.com/clustering.html#peer-discovery-how-does-it-work
 +
 
 +
[http://josuelima.github.io/docker/rabbitmq/cluster/2017/04/19/setting-up-a-rabbitmq-cluster-on-docker.html Setting up a RabbitMQ Cluster on Docker]
 +
 
 +
[https://blog.csdn.net/qq_32488647/article/details/81941491 Docker分布式部署RabbitMQ集群]
 +
 
 +
[https://www.cnblogs.com/cheyunhua/p/8362200.html 多台机器 值得看 Docker:搭建RabbitMQ集群]
 +
 
 +
[https://michael728.github.io/2019/06/07/docker-rabbitmq-env/ docker-compose 安装搭建 RabbitMQ 集群]
 +
 
 +
[https://blog.csdn.net/belonghuang157405/article/details/83540148 单一台机器母机docker简易搭建RabbitMQ集群]
 +
 
 +
[https://blog.csdn.net/jinyidong/article/details/80003362  RabbitMQ之集群搭建]
 +
 
 +
也是单物理机么 ?
 +
https://www.cnblogs.com/vipstone/p/9362388.html
 +
 
  
  
  
[https://blog.csdn.net/chenshourui/article/details/81203770 rabbitmq学习笔记2 : 添加用户和virtual hosts]
+
[[category:ops]]
[[category:ops]]
 

2019年12月24日 (二) 09:39的版本

站内资源

Rabbitmq常用命令

ins rabbitmq

info

 适合于 3.610 and 3.7.5 版本
-p 15672:15672 http访问端口
-p 5672:5672 amqp访问端口
-p 4369 #unable to connect to epmd (port 4369) on rabbitmq01: address (cannot connect to host/port)

mq1

Note

有一种是 node1 不加别 , node2  add node1  ; node3  add node1 and node2  但是  rabbitmqctl cluster_status 可能看起来有些node alarms是down的 不过通过浏览器的不会 

mkdir -p /home/data/docker-compose-mqcluster
cd /home/data/docker-compose-mqcluster
##"登录容器请执行:rabbitmq-plugins enable rabbitmq_management 才可>使用WEB管理页面"
vi docker-compose.yml

version: '3.1'  
services:
  rabbitmq:
    image: rabbitmq:3.6.10-management
    ports:
      - "5672:5672"
      - "4369:4369"
      #- "1883:1883"
      - "15672:15672"
      - "25672:25672"

    container_name: rabbitmqCluster01

    hostname: rabbitmq01
    extra_hosts:
      #- "rabbitmq01:192.168.10.211"#不要加上自己,不然会老是重启的
      - "rabbitmq02:192.168.10.212" 
      - "rabbitmq03:192.168.10.213"
    environment:

      RABBITMQ_ERLANG_COOKIE: 'rabbitmqCookie'   
      RABBITMQ_DEFAULT_VHOST: /

      RABBITMQ_DEFAULT_USER: lxtxadmin

      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq

      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log

      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log

    volumes:
      - ./data/rabbitmq:/var/lib/rabbitmq

    restart: always  
# docker-compose  up -d 

mq2

mkdir -p /home/data/docker-compose-mqcluster
cd /home/data/docker-compose-mqcluster

vi docker-compose.yml
 
version: '3.1'  
services:
  rabbitmq:
    image: rabbitmq:3.6.10-management

    ports:
      - "5672:5672"
      - "4369:4369"
      #- "1883:1883"
      - "15672:15672"
      - "25672:25672"

    container_name: rabbitmqCluster02
    hostname: rabbitmq02
    extra_hosts:
      - "rabbitmq01:192.168.10.211"
      #- "rabbitmq02:192.168.10.212" #不要加上自己,不然会老是重启的
      - "rabbitmq03:192.168.10.213"
    environment:
      RABBITMQ_ERLANG_COOKIE: 'rabbitmqCookie'   
      RABBITMQ_DEFAULT_VHOST: /
      RABBITMQ_DEFAULT_USER: lxtxadmin
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log
      CLUSTERED: 'true'
      CLUSTER_WITH: rabbit1
      RAM_NODE: 'true'

    volumes:
      - ./data/rabbitmq:/var/lib/rabbitmq
    restart: always  

mq3

mkdir -p /home/data/docker-compose-mqcluster
cd /home/data/docker-compose-mqcluster

vi docker-compose.yml

 
version: '3.1'  
services:
  rabbitmq:
    image: rabbitmq:3.6.10-management

    ports:
      - "5672:5672"
      - "4369:4369"
      #- "1883:1883"
      - "15672:15672"
      - "25672:25672"

    container_name: rabbitmqCluster03

    hostname: rabbitmq03
    extra_hosts:
      - "rabbitmq01:10.3.10.141"
      - "rabbitmq02:10.3.10.142"
    environment:

      RABBITMQ_ERLANG_COOKIE: 'rabbitmqCookie'   
      RABBITMQ_DEFAULT_VHOST: /

      RABBITMQ_DEFAULT_USER: lxtxadmin

      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq

      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log

      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log
      CLUSTERED: 'true'
      CLUSTER_WITH: rabbit1
      RAM_NODE: 'true'

    volumes:

      - ./data/rabbitmq:/var/lib/rabbitmq

    restart: always  

config

将节点2,3加入集群

#在rabbit2机器进入容器的命令行
sudo docker exec -it rabbitmqCluster02 /bin/bash

#加入集群
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app

rabbit3执行相同的命令
docker exec -it rabbitmqCluster03 /bin/bash
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app


查询集群状态
rabbitmqctl cluster_status

nginx 配置


#如果是yum nginx  在放在 conf.d/mq.conf
   server {
        listen       80;
        server_name  mq.com;
 

        location / {
            proxy_pass http://10.3.10.141:15672;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           
        }
     }


NOTE  selinux  记得关掉  不然可能是502哦 
#SELinux设置
getenforce   #查看SELINUX工作模式

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #禁用SELINUX
 setenforce 0 #临时禁用SELINUX,无需重启
 
 
 SELINUX=enforcing
#此项定义selinux状态。
#enforcing—是强制模式系统受selinux保护。就是你违反了策略,你就无法继续操作下去
#permissive—是提示模式系统不会受到selinux保护,只是收到警告信息。permissive就是Selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来(警告信息)
#disabled—禁用selinux。

镜像模式

开启镜像模式

troubleshooting


1.docker-compose.yml文件报错
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.rabbitmq.environment.CLUSTERED contains true, which is an invalid type, it should be a string, number, or a null


CLUSTERED: true -->CLUSTERED: 'true'


绑hosts的前进 不要全局FQ  SSR常常坑我们 


rabbitmq node not running

 docker exec  -it af1934d27e21 /bin/bash 
root@rabbitmq02:/# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq02
[{nodes,[{disc,[rabbit@rabbitmq01,rabbit@rabbitmq02,rabbit@rabbitmq03]}]},
 {alarms,[]}]



再想加入 报错
:/# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@rabbitmq02

root@rabbitmq02:/# rabbitmqctl join_cluster rabbit@rabbitmq01
Clustering node rabbit@rabbitmq02 with rabbit@rabbitmq01
Error: unable to connect to node rabbit@rabbitmq02: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@rabbitmq02]

rabbit@rabbitmq02:
  * connected to epmd (port 4369) on rabbitmq02
  * epmd reports node 'rabbit' running on port 25672
  * TCP connection succeeded but Erlang distribution failed

  * Distribution failed unexpectedly while waiting for challenge: {error,
                                                                   closed}


current node details:
- node name: 'rabbitmq-cli-69@rabbitmq02'
- home dir: /var/lib/rabbitmq
- cookie hash: /HHYeuND8Y2blMJ8WoOg1g==

root@rabbitmq02:/# rabbitmqctl start_app
Starting node rabbit@rabbitmq02
Error: unable to connect to node rabbit@rabbitmq02: nodedown


DIAGNOSTICS
===========

attempted to contact: [rabbit@rabbitmq02]

rabbit@rabbitmq02:
current node details:
- node name: 'rabbitmq-cli-69@rabbitmq02'
- home dir: /var/lib/rabbitmq
- cookie hash: /HHYeuND8Y2blMJ8WoOg1g==

root@rabbitmq02:/# rabbitmqctl start_app
Starting node rabbit@rabbitmq02
Error: unable to connect to node rabbit@rabbitmq02: nodedown


DIAGNOSTICS
===========

attempted to contact: [rabbit@rabbitmq02]

rabbit@rabbitmq02:
  * connected to epmd (port 4369) on rabbitmq02
  * epmd reports node 'rabbit' running on port 25672
  * TCP connection succeeded but Erlang distribution failed

  * TCP connection to remote host has timed out. Is the Erlang distribution using TLS?


current node details:
- node name: 'rabbitmq-cli-97@rabbitmq02'
- home dir: /var/lib/rabbitmq
- cookie hash: /HHYeuND8Y2blMJ8WoOg1g==

重启 docker 服务  再 如上添加 不过提示 The node is already a member of this cluster  所以应该是重启docker 就好了

see also

https://www.rabbitmq.com/clustering.html#peer-discovery-how-does-it-work

Setting up a RabbitMQ Cluster on Docker

Docker分布式部署RabbitMQ集群

多台机器 值得看 Docker:搭建RabbitMQ集群

docker-compose 安装搭建 RabbitMQ 集群

单一台机器母机docker简易搭建RabbitMQ集群

RabbitMQ之集群搭建

也是单物理机么 ? https://www.cnblogs.com/vipstone/p/9362388.html