集群进入某个节点查看指令:rabbitmqctl cluster_status

单机版:
docker run -d --name rabbit \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-p 15672:15672 \
-p 5672:5672 \
-p 25672:25672 \
-p 61613:61613 \
-p 1883:1883 \
rabbitmq:management
集群安装   --hostname  rabbit1指定主机名  本机安装  一机多例也可以不指定    
镜像集群可以把RABBITMQ_ERLANG_COOKIE='rabbitcookie' \都写成一样的,这样就可以保证每个节点一致,从而达成集群 docker run -d \
--hostname rabbit1 \
--name myrabbit1 \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \
rabbitmq:management docker run -d \
--hostname rabbit2 \
--name myrabbit2 \
-p 5673:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--link myrabbit1:rabbit1 \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \
rabbitmq:management docker run -d \
--hostname rabbit3 \
--name myrabbit3 \
-p 5674:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--link myrabbit1:rabbit1 \
--link myrabbit2:rabbit2 \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \
rabbitmq:management –link:将多个容器链接到一起
erlang Cookie值必须相同,也就是RABBITMQ_ERLANG_COOKIE参数的值必须相同

容器端口5672 被5673 5674 映射

4.绑定节点

rabbitmqctl reset  清空当前节点数据防止绑定失败
rabbitmqctl join_cluster --ram rabbit@rabbit1   都关联rabbit1进行绑定


设置节点1:
docker exec -it myrabbit1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

设置节点2:参数--ram表示设置为内存节点

docker exec -it myrabbit2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit

设置节点3:参数--ram表示设置为内存节点

docker exec -it myrabbit3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit

查看你集群状态:进入某个实例节点 输入这个指令即可查看集群信息 rabbitmqctl cluster_status



再加一个集群点:

docker run -d  \
--hostname rabbit4 \
--name myrabbit4 \
-p 5675:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--link myrabbit1:rabbit1 \
--link myrabbit2:rabbit2 \
--link myrabbit3:rabbit3 \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \
rabbitmq:management

docker exec -it myrabbit4 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app
exit
剔除4节点,进入rabbit4的镜像  执行如下操作
rabbitmqctl stop_app
rabbitmqctl reset

搭建rabitmq附加参数

--log-opt max-size=10m 日志文件单个最大10M

--log-opt max-file=3 日志文件最多保留3个

 -v /data/rabbitmq01:/var/lib/rabbitmq:z \

如下样例:引用:https://blog.csdn.net/qq_40378034/article/details/89788708 这偏文章的见解
docker run -d --hostname rabbitmq1   \
--add-host="rabbitmq1":192.168.3.92 \ 所在机器的IP
--add-host="rabbitmq2":192.168.3.93 \ 所在机器的IP
--name rabbit1\
--restart=always\
-p "4369:4369" \
-p "5672:5672" \
-p "15672:15672" \
-p "25672:25672" \
-v /data/rabbitmq01:/var/lib/rabbitmq:z \
-e RABBITMQ_DEFAULT_USER=jffwuser \
-e RABBITMQ_DEFAULT_PASS=jffw123 \
-e RABBITMQ_ERLANG_COOKIE='jffwcookie' \
erikopa/rabbitmq-management-x-delayed-message
 

给节点添加用户其权限:

rabbitmqctl -n rabbit1 add_user wb admin
rabbitmqctl -n rabbit1 set_user_tags wb administrator
rabbitmqctl -n rabbit1 set_permissions -p / wb ".*" “.*” ".*"

查看用户列表:
rabbitmqctl list_users
引用:https://blog.csdn.net/qq_40378034/article/details/89788708 这偏文章的见解

RabbitMQ中的每一个节点,不管是单一节点系统或者集群中的一部分,要么是内存节点,要么是磁盘节点。
内存节点将所有的队列、交换机、绑定关系、用户、权限和vhost的元数据定义都存储在内存中,而磁盘节点则将这些信息存储到磁盘中。
单节点的集群中必然只有磁盘类型的节点,否则当重启RabbitMQ之后,所有关于系统的配置信息都会丢失。不过在集群中,可以选择配置部分节点为内存节点,这样可以获得更高的性能

RabbitMQ只要求在集群中至少有一个磁盘节点,所有其他节点可以是内存节点。当节点加入或者离开集群时,它们必须将变更通知到至少一个磁盘节点。
如果只有一个磁盘节点,而且刚好是它崩溃了,那么集群可以继续发送或者接收消息,但是不能执行创建队列、交换机、绑定关系、用户,以及更改权限、添加或者删除集群节点的操作了。
也就是说,如果集群中唯一的磁盘节点崩溃,集群仍然可以保持运行,但是直到将该节点恢复到集群前,无法更改任何东西。所以在建立集群的时候应该保证有两个或者多个磁盘节点的存在

在内存节点重启后,它们会连接到预先配置的磁盘节点,下载当前集群元数据的副本。当在集群中添加内存节点时,确保告知其所有的磁盘节点。
只要内存节点可以找到至少一个磁盘节点,那么它就能在重启后重新加入集群中为了确保集群信息的可靠性,建议全部使用磁盘节点

多机器部署多应用:rabbitcookie 里面的值要保持一致

最新文章

  1. Android带加减的edittext
  2. 我的Android第一章
  3. Apache Thrift 服务开发框架学习记录
  4. 【opencv】图片标注文字
  5. [LintCode] House Robber II 打家劫舍之二
  6. Ubuntu 安装Redis体验
  7. Android——GridView(显示文字)
  8. N个数随机相加得出固定值的排列组合
  9. ubuntu环境配置
  10. 关于 WP上应用调试时报错“指定的通信资源(端口)”已由另一个应用程序使用 问题
  11. swift学习笔记(七)自己主动引用计数
  12. jQuery中绑定事件bind() on() live() one()的异同
  13. 【原创】Octovis在Ubuntu16.04下运行出现core dump的解决方案
  14. SPFA 算法详解
  15. Linux的chattr与lsattr命令详解
  16. nginx设置目录浏览及解决中文乱码问题
  17. pip换源安装
  18. redis集群部署+节点端口修改+数据恢复
  19. Linux 安装 Mysql 5.7.23
  20. pointer & iterator

热门文章

  1. Maven工程 报 Diamond types are not supported at language level '5'
  2. xampp中修改mysql默认空密码
  3. 【搜索】单词接龙 luogu-1019
  4. Linux符号描述
  5. post传参params与body的区别(@RequestParam和@RequestBody的区别)
  6. thinkPHP5 5.0.23 远程代码执行漏洞
  7. Nexus Repository Manager 3 远程命令执行漏洞(CVE-2020-10199、CVE-2020-10204)
  8. Centos8部署jdk、mysql8、tomcat,并部署项目到tomcat中
  9. 【进阶之路】Java的类型擦除式泛型
  10. 学习Android Jetpack? 入门教程和进阶实战这里全都有!