<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Rabbitmq_cluster_on_docker-compose</id>
	<title>Rabbitmq cluster on docker-compose - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Rabbitmq_cluster_on_docker-compose"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Rabbitmq_cluster_on_docker-compose&amp;action=history"/>
	<updated>2026-04-17T15:27:38Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Rabbitmq_cluster_on_docker-compose&amp;diff=916&amp;oldid=prev</id>
		<title>Evan：​/* nginx 配置 */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Rabbitmq_cluster_on_docker-compose&amp;diff=916&amp;oldid=prev"/>
		<updated>2021-10-25T09:26:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;nginx 配置&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
=进阶=&lt;br /&gt;
&lt;br /&gt;
http://rabbitmq.mr-ping.com/tutorials_with_python/[1]Hello_World.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://zhuanlan.zhihu.com/p/63700605 透彻rabbitmq]&lt;br /&gt;
&lt;br /&gt;
[https://www.zhihu.com/question/34243607/answer/1369889869 消息队列的使用场景是怎样的]&lt;br /&gt;
&lt;br /&gt;
https://www.rabbitmq.com/getstarted.html&lt;br /&gt;
&lt;br /&gt;
名师讲坛——Java微服务架构实战（SpringBoot+SpringCloud+Docker+RabbitMQ&lt;br /&gt;
http://product.china-pub.com/8066694#ml&lt;br /&gt;
&lt;br /&gt;
http://product.china-pub.com/8063896#ml&lt;br /&gt;
 Spring Boot微服务实战 使用RabbitMQ、Eureka、Ribbon、Zuul和Cucumber开发RESTful服务&lt;br /&gt;
&lt;br /&gt;
=站内资源=&lt;br /&gt;
[[Rabbitmq常用命令]]&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/belonghuang157405/article/details/83540148  docker简易搭建RabbitMQ集群HA-good]&lt;br /&gt;
&lt;br /&gt;
=ins rabbitmq=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Sep 22 2021&lt;br /&gt;
 可以用alpine &lt;br /&gt;
&lt;br /&gt;
cat docker-compose.yml &lt;br /&gt;
version: &amp;#039;3.2&amp;#039;  &lt;br /&gt;
services:&lt;br /&gt;
  rabbitmq:&lt;br /&gt;
    image: rabbitmq:3.8.22-management-alpine&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;5672:5672&amp;quot;&lt;br /&gt;
      - &amp;quot;4369:4369&amp;quot;&lt;br /&gt;
      #- &amp;quot;1883:1883&amp;quot;&lt;br /&gt;
      - &amp;quot;15672:15672&amp;quot;&lt;br /&gt;
      - &amp;quot;25672:25672&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    container_name: rabbitmq01&lt;br /&gt;
&lt;br /&gt;
    hostname: rabbitmq01&lt;br /&gt;
    environment:&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_ERLANG_COOKIE: &amp;#039;rabbitmqCookie&amp;#039;   &lt;br /&gt;
      RABBITMQ_DEFAULT_VHOST: /&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_DEFAULT_USER: dddadmin&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_DEFAULT_PASS: ddddSNTTo886Gq&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data/rabbitmq:/var/lib/rabbitmq&lt;br /&gt;
&lt;br /&gt;
    restart: always  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==info==&lt;br /&gt;
 &amp;lt;pre&amp;gt; 适合于 3.610 and 3.7.5 版本&lt;br /&gt;
 -p 15672:15672 http访问端口&lt;br /&gt;
 -p 5672:5672 amqp访问端口&lt;br /&gt;
 -p 4369 #unable to connect to epmd (port 4369) on rabbitmq01: address (cannot connect to host/port)&lt;br /&gt;
&lt;br /&gt;
Thu Sep 10 18:33:00 CST 2020  试过了 这个 版本现在的能用 &lt;br /&gt;
sed  -i &amp;#039;s!rabbitmq:3.6.10-management!rabbitmq:3.7.26-management-alpine!&amp;#039; docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
git &lt;br /&gt;
cd  /data/apps&lt;br /&gt;
git clone https://github.com/evan886/mq.git &lt;br /&gt;
mv  mq/docker-compose-mqcluster/   . &amp;amp;&amp;amp; rm  -rf  mq&lt;br /&gt;
&lt;br /&gt;
把你要的在那台机器改为 docker-compose.yml 和改好相关配置 然后删除其它的 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
https://x-team.com/blog/set-up-rabbitmq-with-docker-compose/&lt;br /&gt;
&lt;br /&gt;
下面开始的是mq cluster &lt;br /&gt;
==mq1==&lt;br /&gt;
===Note===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  如果是 alpine  rabbitmq:3.6.10-management  换成   其它基础不用变,除了进入容器变成 sh &lt;br /&gt;
  sed  -i &amp;#039;s!rabbitmq:3.6.10-management!rabbitmq:3.7.26-management-alpine!&amp;#039; docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
 有一种是 node1 不加别 , node2  add node1  ; node3  add node1 and node2  但是  rabbitmqctl cluster_status 可能看起来有些node alarms是down的 不过通过浏览器的不会   &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#记得  extra_hosts 改成你的相关IP&lt;br /&gt;
mkdir -p /home/data/docker-compose-mqcluster&lt;br /&gt;
cd /home/data/docker-compose-mqcluster&lt;br /&gt;
##&amp;quot;登录容器请执行:rabbitmq-plugins enable rabbitmq_management 才可&amp;gt;使用WEB管理页面&amp;quot;&lt;br /&gt;
vi docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
version: &amp;#039;3.1&amp;#039;  &lt;br /&gt;
services:&lt;br /&gt;
  rabbitmq:&lt;br /&gt;
    image: rabbitmq:3.6.10-management&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;5672:5672&amp;quot;&lt;br /&gt;
      - &amp;quot;4369:4369&amp;quot;&lt;br /&gt;
      #- &amp;quot;1883:1883&amp;quot;&lt;br /&gt;
      - &amp;quot;15672:15672&amp;quot;&lt;br /&gt;
      - &amp;quot;25672:25672&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    container_name: rabbitmqCluster01&lt;br /&gt;
&lt;br /&gt;
    hostname: rabbitmq01&lt;br /&gt;
    extra_hosts:&lt;br /&gt;
      #- &amp;quot;rabbitmq01:192.168.10.211&amp;quot;#不要加上自己，不然会老是重启的&lt;br /&gt;
      - &amp;quot;rabbitmq02:192.168.10.212&amp;quot; &lt;br /&gt;
      - &amp;quot;rabbitmq03:192.168.10.213&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_ERLANG_COOKIE: &amp;#039;rabbitmqCookie&amp;#039;   &lt;br /&gt;
      RABBITMQ_DEFAULT_VHOST: /&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_DEFAULT_USER: lxtxadmin&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data/rabbitmq:/var/lib/rabbitmq&lt;br /&gt;
&lt;br /&gt;
    restart: always  &lt;br /&gt;
# docker-compose  up -d &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==mq2==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p /home/data/docker-compose-mqcluster&lt;br /&gt;
cd /home/data/docker-compose-mqcluster&lt;br /&gt;
&lt;br /&gt;
vi docker-compose.yml&lt;br /&gt;
 &lt;br /&gt;
version: &amp;#039;3.1&amp;#039;  &lt;br /&gt;
services:&lt;br /&gt;
  rabbitmq:&lt;br /&gt;
    image: rabbitmq:3.6.10-management&lt;br /&gt;
&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;5672:5672&amp;quot;&lt;br /&gt;
      - &amp;quot;4369:4369&amp;quot;&lt;br /&gt;
      #- &amp;quot;1883:1883&amp;quot;&lt;br /&gt;
      - &amp;quot;15672:15672&amp;quot;&lt;br /&gt;
      - &amp;quot;25672:25672&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    container_name: rabbitmqCluster02&lt;br /&gt;
    hostname: rabbitmq02&lt;br /&gt;
    extra_hosts:&lt;br /&gt;
      - &amp;quot;rabbitmq01:192.168.10.211&amp;quot;&lt;br /&gt;
      #- &amp;quot;rabbitmq02:192.168.10.212&amp;quot; #不要加上自己，不然会老是重启的&lt;br /&gt;
      - &amp;quot;rabbitmq03:192.168.10.213&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      RABBITMQ_ERLANG_COOKIE: &amp;#039;rabbitmqCookie&amp;#039;   &lt;br /&gt;
      RABBITMQ_DEFAULT_VHOST: /&lt;br /&gt;
      RABBITMQ_DEFAULT_USER: lxtxadmin&lt;br /&gt;
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq&lt;br /&gt;
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log&lt;br /&gt;
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log&lt;br /&gt;
      CLUSTERED: &amp;#039;true&amp;#039;&lt;br /&gt;
      CLUSTER_WITH: rabbit1&lt;br /&gt;
      RAM_NODE: &amp;#039;true&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data/rabbitmq:/var/lib/rabbitmq&lt;br /&gt;
    restart: always  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==mq3==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p /home/data/docker-compose-mqcluster&lt;br /&gt;
cd /home/data/docker-compose-mqcluster&lt;br /&gt;
&lt;br /&gt;
vi docker-compose.yml&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
version: &amp;#039;3.1&amp;#039;  &lt;br /&gt;
services:&lt;br /&gt;
  rabbitmq:&lt;br /&gt;
    image: rabbitmq:3.6.10-management&lt;br /&gt;
&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;5672:5672&amp;quot;&lt;br /&gt;
      - &amp;quot;4369:4369&amp;quot;&lt;br /&gt;
      #- &amp;quot;1883:1883&amp;quot;&lt;br /&gt;
      - &amp;quot;15672:15672&amp;quot;&lt;br /&gt;
      - &amp;quot;25672:25672&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    container_name: rabbitmqCluster03&lt;br /&gt;
&lt;br /&gt;
    hostname: rabbitmq03&lt;br /&gt;
    extra_hosts:&lt;br /&gt;
      - &amp;quot;rabbitmq01:10.3.10.141&amp;quot;&lt;br /&gt;
      - &amp;quot;rabbitmq02:10.3.10.142&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_ERLANG_COOKIE: &amp;#039;rabbitmqCookie&amp;#039;   &lt;br /&gt;
      RABBITMQ_DEFAULT_VHOST: /&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_DEFAULT_USER: lxtxadmin&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log&lt;br /&gt;
&lt;br /&gt;
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log&lt;br /&gt;
      CLUSTERED: &amp;#039;true&amp;#039;&lt;br /&gt;
      CLUSTER_WITH: rabbit1&lt;br /&gt;
      RAM_NODE: &amp;#039;true&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
&lt;br /&gt;
      - ./data/rabbitmq:/var/lib/rabbitmq&lt;br /&gt;
&lt;br /&gt;
    restart: always  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=config=&lt;br /&gt;
==将节点2,3加入集群==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#在rabbit2机器进入容器的命令行&lt;br /&gt;
sudo docker exec -it rabbitmqCluster02  sh  #/bin/bash&lt;br /&gt;
&lt;br /&gt;
#加入集群&lt;br /&gt;
rabbitmqctl stop_app  &amp;amp;&amp;amp; rabbitmqctl join_cluster rabbit@rabbitmq01  &amp;amp;&amp;amp;rabbitmqctl start_app&lt;br /&gt;
&lt;br /&gt;
rabbit3执行相同的命令&lt;br /&gt;
docker exec -it rabbitmqCluster03  sh #/bin/bash&lt;br /&gt;
rabbitmqctl stop_app &amp;amp;&amp;amp; rabbitmqctl join_cluster rabbit@rabbitmq01  &amp;amp;&amp;amp;rabbitmqctl start_app&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
查询集群状态&lt;br /&gt;
rabbitmqctl cluster_status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== nginx 配置==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#如果是yum nginx  在放在 conf.d/mq.conf&lt;br /&gt;
   server {&lt;br /&gt;
        listen       80;&lt;br /&gt;
        server_name  mq.com;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
        location / {&lt;br /&gt;
            proxy_pass http://10.3.10.141:15672;&lt;br /&gt;
            proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
            proxy_set_header Host $host;&lt;br /&gt;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
           &lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE  selinux  记得关掉  不然可能是502哦 &lt;br /&gt;
#SELinux设置&lt;br /&gt;
getenforce   #查看SELINUX工作模式&lt;br /&gt;
&lt;br /&gt;
sed -i &amp;#039;s/SELINUX=enforcing/SELINUX=disabled/&amp;#039; /etc/selinux/config #禁用SELINUX&lt;br /&gt;
 setenforce 0 #临时禁用SELINUX，无需重启&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 SELINUX=enforcing&lt;br /&gt;
#此项定义selinux状态。&lt;br /&gt;
#enforcing—是强制模式系统受selinux保护。就是你违反了策略，你就无法继续操作下去&lt;br /&gt;
#permissive—是提示模式系统不会受到selinux保护，只是收到警告信息。permissive就是Selinux有效，但是即使你违反了策略的话它让你继续操作，但是把你的违反的内容记录下来(警告信息)&lt;br /&gt;
#disabled—禁用selinux。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
下面的配置是不对的 会跑到框架里面去了&lt;br /&gt;
&lt;br /&gt;
页面错误！请稍后再试～&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   listen       80;&lt;br /&gt;
&lt;br /&gt;
    server_name rabbitmq.com;&lt;br /&gt;
    #index       index.html index.html index.php;&lt;br /&gt;
&lt;br /&gt;
    #charset koi8-r;&lt;br /&gt;
    charset     utf-8;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    location /{&lt;br /&gt;
        proxy_pass http://cfb.rabbitmq.server:15672;&lt;br /&gt;
        #proxy_set_header Host $host:$server_port;&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
       #proxy_set_header REMOTE-HOST $remote_addr;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        #index    index.html index.htm index.php;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==镜像模式==&lt;br /&gt;
在我的wiki上&lt;br /&gt;
[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 开启镜像模式]&lt;br /&gt;
&lt;br /&gt;
=RabbitMQ实现延迟队列(使用delay插件=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
docker cp rabbitmq_delayed_message_exchange-3.6.6.ez   c77afe9fa73f:/plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: 进入docker容器内 docker exec  -t rabbit  bash&lt;br /&gt;
&lt;br /&gt;
8. 执行命令让插件生效: 启动延时插件：&lt;br /&gt;
rabbitmq-plugins enable rabbitmq_delayed_message_exchange&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
https://www.jianshu.com/p/197715cea172&lt;br /&gt;
&lt;br /&gt;
=troubleshooting =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.docker-compose.yml文件报错&lt;br /&gt;
ERROR: The Compose file &amp;#039;./docker-compose.yml&amp;#039; is invalid because:&lt;br /&gt;
services.rabbitmq.environment.CLUSTERED contains true, which is an invalid type, it should be a string, number, or a null&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CLUSTERED: true --&amp;gt;CLUSTERED: &amp;#039;true&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
绑hosts的前进 不要全局FQ  SSR常常坑我们 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
问题2 &lt;br /&gt;
15672 端口不通 也就是web界面打不开 &lt;br /&gt;
&lt;br /&gt;
问题 镜像用了 rabbitmq 而不是rabbitmq-manager&lt;br /&gt;
&lt;br /&gt;
发现过程 web打不开   15672 端口不能 ，而 5672是通的 进入容器发现是ubuntu 而我记得以前是debian呀 问了下sy才知道 他换了，没全用我的，晕死 ，坑自己人啊 &lt;br /&gt;
&lt;br /&gt;
补救办法  开启 rabbitmq-plugins enable rabbitmq_management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
crash dump is being written to: erl_crash.dump...sh: echo: I/O error&lt;br /&gt;
原来是空间暴了呢&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
https://www.rabbitmq.com/management.html&lt;br /&gt;
==RabbitMQ镜像集群脑裂 ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
现象：&lt;br /&gt;
RabbitMQ GUI上显示&lt;br /&gt;
&lt;br /&gt;
Network partition detected&lt;br /&gt;
Mnesia reports that this RabbitMQ cluster has experienced a network partition. There is a risk of losing data. Please read RabbitMQ documentation about network partitions and the possible solutions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
节点3 是挂，以节点1 为准  在 node2  node3 上 分别执行&lt;br /&gt;
rabbitmqctl stop_app&lt;br /&gt;
rabbitmqctl start_app&lt;br /&gt;
&lt;br /&gt;
就行 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==端口在  进入容器  cannot exec in a stopped state: unknown ==&lt;br /&gt;
今天是端口在 docker restart   id 都不行，进程也还在的  重启了 docker 服务才行了&lt;br /&gt;
&lt;br /&gt;
==rabbitmq node not running==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
行情 重启了一下 docker  mq集群就好了 &lt;br /&gt;
&lt;br /&gt;
试过 telnet  15276 有点不太对 一下就跳出来了  &lt;br /&gt;
&lt;br /&gt;
也登录不了容器  一开始还以为是防火墙  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 docker exec  -it af1934d27e21 /bin/bash &lt;br /&gt;
root@rabbitmq02:/# rabbitmqctl cluster_status&lt;br /&gt;
Cluster status of node rabbit@rabbitmq02&lt;br /&gt;
[{nodes,[{disc,[rabbit@rabbitmq01,rabbit@rabbitmq02,rabbit@rabbitmq03]}]},&lt;br /&gt;
 {alarms,[]}]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
再想加入 报错&lt;br /&gt;
:/# rabbitmqctl stop_app&lt;br /&gt;
Stopping rabbit application on node rabbit@rabbitmq02&lt;br /&gt;
&lt;br /&gt;
root@rabbitmq02:/# rabbitmqctl join_cluster rabbit@rabbitmq01&lt;br /&gt;
Clustering node rabbit@rabbitmq02 with rabbit@rabbitmq01&lt;br /&gt;
Error: unable to connect to node rabbit@rabbitmq02: nodedown&lt;br /&gt;
&lt;br /&gt;
DIAGNOSTICS&lt;br /&gt;
===========&lt;br /&gt;
&lt;br /&gt;
attempted to contact: [rabbit@rabbitmq02]&lt;br /&gt;
&lt;br /&gt;
rabbit@rabbitmq02:&lt;br /&gt;
  * connected to epmd (port 4369) on rabbitmq02&lt;br /&gt;
  * epmd reports node &amp;#039;rabbit&amp;#039; running on port 25672&lt;br /&gt;
  * TCP connection succeeded but Erlang distribution failed&lt;br /&gt;
&lt;br /&gt;
  * Distribution failed unexpectedly while waiting for challenge: {error,&lt;br /&gt;
                                                                   closed}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
current node details:&lt;br /&gt;
- node name: &amp;#039;rabbitmq-cli-69@rabbitmq02&amp;#039;&lt;br /&gt;
- home dir: /var/lib/rabbitmq&lt;br /&gt;
- cookie hash: /HHYeuND8Y2blMJ8WoOg1g==&lt;br /&gt;
&lt;br /&gt;
root@rabbitmq02:/# rabbitmqctl start_app&lt;br /&gt;
Starting node rabbit@rabbitmq02&lt;br /&gt;
Error: unable to connect to node rabbit@rabbitmq02: nodedown&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DIAGNOSTICS&lt;br /&gt;
===========&lt;br /&gt;
&lt;br /&gt;
attempted to contact: [rabbit@rabbitmq02]&lt;br /&gt;
&lt;br /&gt;
rabbit@rabbitmq02:&lt;br /&gt;
current node details:&lt;br /&gt;
- node name: &amp;#039;rabbitmq-cli-69@rabbitmq02&amp;#039;&lt;br /&gt;
- home dir: /var/lib/rabbitmq&lt;br /&gt;
- cookie hash: /HHYeuND8Y2blMJ8WoOg1g==&lt;br /&gt;
&lt;br /&gt;
root@rabbitmq02:/# rabbitmqctl start_app&lt;br /&gt;
Starting node rabbit@rabbitmq02&lt;br /&gt;
Error: unable to connect to node rabbit@rabbitmq02: nodedown&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DIAGNOSTICS&lt;br /&gt;
===========&lt;br /&gt;
&lt;br /&gt;
attempted to contact: [rabbit@rabbitmq02]&lt;br /&gt;
&lt;br /&gt;
rabbit@rabbitmq02:&lt;br /&gt;
  * connected to epmd (port 4369) on rabbitmq02&lt;br /&gt;
  * epmd reports node &amp;#039;rabbit&amp;#039; running on port 25672&lt;br /&gt;
  * TCP connection succeeded but Erlang distribution failed&lt;br /&gt;
&lt;br /&gt;
  * TCP connection to remote host has timed out. Is the Erlang distribution using TLS?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
current node details:&lt;br /&gt;
- node name: &amp;#039;rabbitmq-cli-97@rabbitmq02&amp;#039;&lt;br /&gt;
- home dir: /var/lib/rabbitmq&lt;br /&gt;
- cookie hash: /HHYeuND8Y2blMJ8WoOg1g==&lt;br /&gt;
&lt;br /&gt;
重启 docker 服务  再 如上添加 不过提示 The node is already a member of this cluster  所以应该是重启docker 就好了&lt;br /&gt;
&lt;br /&gt;
今天是 监听的IP不对 模板的是10 我用的 192.168&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=单机版集群=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
version: &amp;#039;3.1&amp;#039;  &lt;br /&gt;
services:&lt;br /&gt;
  rabbitmq01:&lt;br /&gt;
    image: rabbitmq:3.6.10-management&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;5672:5672&amp;quot;&lt;br /&gt;
        #- &amp;quot;4369:4369&amp;quot;&lt;br /&gt;
      - &amp;quot;15672:15672&amp;quot;&lt;br /&gt;
        #- &amp;quot;25672:25672&amp;quot;&lt;br /&gt;
    container_name: rabbitmqCluster01&lt;br /&gt;
    hostname: rabbitmq01&lt;br /&gt;
    environment:&lt;br /&gt;
      RABBITMQ_ERLANG_COOKIE: &amp;#039;rabbitmqCookie&amp;#039;   &lt;br /&gt;
      RABBITMQ_DEFAULT_VHOST: /&lt;br /&gt;
      RABBITMQ_DEFAULT_USER: lxtxadmin&lt;br /&gt;
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq&lt;br /&gt;
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log&lt;br /&gt;
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data/rabbitmq:/var/lib/rabbitmq&lt;br /&gt;
    restart: always  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  rabbitmq02:&lt;br /&gt;
    image: rabbitmq:3.6.10-management&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;5673:5672&amp;quot;&lt;br /&gt;
        #- &amp;quot;4369:4369&amp;quot;&lt;br /&gt;
      - &amp;quot;15673:15672&amp;quot;&lt;br /&gt;
        #- &amp;quot;25672:25672&amp;quot;&lt;br /&gt;
    container_name: rabbitmqCluster02&lt;br /&gt;
    hostname: rabbitmq02&lt;br /&gt;
    links:&lt;br /&gt;
      - rabbitmq01&lt;br /&gt;
    environment:&lt;br /&gt;
      RABBITMQ_ERLANG_COOKIE: &amp;#039;rabbitmqCookie&amp;#039;   &lt;br /&gt;
      RABBITMQ_DEFAULT_VHOST: /&lt;br /&gt;
      RABBITMQ_DEFAULT_USER: lxtxadmin&lt;br /&gt;
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq&lt;br /&gt;
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log&lt;br /&gt;
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data/rabbitmq02:/var/lib/rabbitmq&lt;br /&gt;
    restart: always  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  rabbitmq03:&lt;br /&gt;
    image: rabbitmq:3.6.10-management&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;5674:5672&amp;quot;&lt;br /&gt;
        #- &amp;quot;4369:4369&amp;quot;&lt;br /&gt;
      - &amp;quot;15674:15672&amp;quot;&lt;br /&gt;
        #- &amp;quot;25672:25672&amp;quot;&lt;br /&gt;
    container_name: rabbitmqCluster03&lt;br /&gt;
    hostname: rabbitmq03&lt;br /&gt;
    links:&lt;br /&gt;
      - rabbitmq01&lt;br /&gt;
    environment:&lt;br /&gt;
      RABBITMQ_ERLANG_COOKIE: &amp;#039;rabbitmqCookie&amp;#039;   &lt;br /&gt;
      RABBITMQ_DEFAULT_VHOST: /&lt;br /&gt;
      RABBITMQ_DEFAULT_USER: lxtxadmin&lt;br /&gt;
      RABBITMQ_DEFAULT_PASS: tSNTTo886Gq&lt;br /&gt;
      RABBITMQ_LOGS: /var/lib/rabbitmq/rabbitmq.log&lt;br /&gt;
      RABBITMQ_SASL_LOGS: /var/lib/rabbitmq/rabbitmq-sasl.log&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data/rabbitmq03:/var/lib/rabbitmq&lt;br /&gt;
    restart: always  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
然后再加入集群 同上 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=python操作RabbitMQ=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pip3 install pika &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# auth :   send.py&lt;br /&gt;
import pika&lt;br /&gt;
# ######################### 生产者 #########################&lt;br /&gt;
credentials = pika.PlainCredentials(&amp;#039;admin&amp;#039;, &amp;#039;tSNTTo886Gq&amp;#039;)&lt;br /&gt;
#链接rabbit服务器（localhost是本机，如果是其他服务器请修改为ip地址）&lt;br /&gt;
connection = pika.BlockingConnection(pika.ConnectionParameters(&amp;#039;192.168.10.51&amp;#039;,5672,&amp;#039;/&amp;#039;,credentials))&lt;br /&gt;
#创建频道&lt;br /&gt;
channel = connection.channel()&lt;br /&gt;
# 声明消息队列，消息将在这个队列中进行传递。如果将消息发送到不存在的队列，rabbitmq将会自动清除这些消息。如果队列不存在，则创建&lt;br /&gt;
channel.queue_declare(queue=&amp;#039;hello&amp;#039;)&lt;br /&gt;
#exchange -- 它使我们能够确切地指定消息应该到哪个队列去。&lt;br /&gt;
#向队列插入数值 routing_key是队列名 body是要插入的内容&lt;br /&gt;
&lt;br /&gt;
channel.basic_publish(exchange=&amp;#039;&amp;#039;,&lt;br /&gt;
                  routing_key=&amp;#039;hello&amp;#039;,&lt;br /&gt;
                  body=&amp;#039;Hello World!&amp;#039;)&lt;br /&gt;
print(&amp;quot;开始队列&amp;quot;)&lt;br /&gt;
#缓冲区已经flush而且消息已经确认发送到了RabbitMQ中，关闭链接&lt;br /&gt;
connection.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# auth :  receive.py&lt;br /&gt;
&lt;br /&gt;
import pika&lt;br /&gt;
&lt;br /&gt;
# ########################## 消费者 ##########################&lt;br /&gt;
credentials = pika.PlainCredentials(&amp;#039;admin&amp;#039;, &amp;#039;tSNTTo886Gq&amp;#039;)&lt;br /&gt;
#链接rabbit服务器（localhost是本机，如果是其他服务器请修改为ip地址）&lt;br /&gt;
connection = pika.BlockingConnection(pika.ConnectionParameters(&amp;#039;192.168.10.51&amp;#039;,5672,&amp;#039;/&amp;#039;,credentials))&lt;br /&gt;
channel = connection.channel()&lt;br /&gt;
&lt;br /&gt;
# 声明消息队列，消息将在这个队列中进行传递。如果队列不存在，则创建&lt;br /&gt;
channel.queue_declare(queue=&amp;#039;hello&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# 定义一个回调函数来处理，这边的回调函数就是将信息打印出来。&lt;br /&gt;
def callback(ch, method, properties, body):&lt;br /&gt;
    print(&amp;quot; [x] Received %r&amp;quot; % body)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# 告诉rabbitmq使用callback来接收信息  &lt;br /&gt;
chan.basic_consume(queue=&amp;#039;hello&amp;#039;, on_message_callback=callback, auto_ack=True)&lt;br /&gt;
#TypeError: basic_consume() got multiple values for argument &amp;#039;queue&amp;#039;&lt;br /&gt;
&lt;br /&gt;
#channel.basic_consume(callback,&lt;br /&gt;
#                      queue=&amp;#039;hello&amp;#039;,&lt;br /&gt;
#                      no_ack=True)&lt;br /&gt;
 # no_ack=True表示在回调函数中不需要发送确认标识&lt;br /&gt;
&lt;br /&gt;
print(&amp;#039; [*] Waiting for messages. To exit press CTRL+C&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
# 开始接收信息，并进入阻塞状态，队列里有信息才会调用callback进行处理。按ctrl+c退出。&lt;br /&gt;
channel.start_consuming()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 python3  receive.py &lt;br /&gt;
 [*] Waiting for messages. To exit press CTRL+C&lt;br /&gt;
 [x] Received b&amp;#039;Hello World!&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==py mq==&lt;br /&gt;
http://rabbitmq.mr-ping.com/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/pangguoping/p/5720134.html python - 操作RabbitMQ]&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/shenh/p/10497244.html  python 操作RabbitMq详解]&lt;br /&gt;
&lt;br /&gt;
https://www.rabbitmq.com/tutorials/tutorial-one-python.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.jianshu.com/p/e5c9f85e18f1&lt;br /&gt;
&lt;br /&gt;
https://www.cnblogs.com/kerwinC/p/5967584.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=see also=&lt;br /&gt;
&lt;br /&gt;
https://www.rabbitmq.com/clustering.html#peer-discovery-how-does-it-work&lt;br /&gt;
&lt;br /&gt;
[https://my.oschina.net/u/4047016/blog/4553578 RabbitMQ 集群高可用原理及实战部署介绍]&lt;br /&gt;
&lt;br /&gt;
[http://mknight.cn/RabbitMQ%20%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2.html RabbitMQ 集群部署 ]&lt;br /&gt;
&lt;br /&gt;
[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]&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/qq_32488647/article/details/81941491 Docker分布式部署RabbitMQ集群]&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/cheyunhua/p/8362200.html 多台机器 值得看 Docker：搭建RabbitMQ集群]&lt;br /&gt;
&lt;br /&gt;
[https://michael728.github.io/2019/06/07/docker-rabbitmq-env/ docker-compose 安装搭建 RabbitMQ 集群]&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/belonghuang157405/article/details/83540148 单一台机器母机docker简易搭建RabbitMQ集群]&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/jinyidong/article/details/80003362  RabbitMQ之集群搭建]&lt;br /&gt;
&lt;br /&gt;
也是单物理机么 ？&lt;br /&gt;
https://www.cnblogs.com/vipstone/p/9362388.html&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/belonghuang157405/article/details/83540148  docker简易搭建RabbitMQ集群]&lt;br /&gt;
&lt;br /&gt;
[https://cloud.tencent.com/developer/article/1391426 rabbitmq 原理、集群、基本运维操作、常见故障处理]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[category:ops]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>