RabbitMq安装(单点与集群)rabbitMq以及状态查询
2024-10-19 13:07:22
集群进入某个节点查看指令: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 里面的值要保持一致
最新文章
- Android带加减的edittext
- 我的Android第一章
- Apache Thrift 服务开发框架学习记录
- 【opencv】图片标注文字
- [LintCode] House Robber II 打家劫舍之二
- Ubuntu 安装Redis体验
- Android——GridView(显示文字)
- N个数随机相加得出固定值的排列组合
- ubuntu环境配置
- 关于 WP上应用调试时报错“指定的通信资源(端口)”已由另一个应用程序使用 问题
- swift学习笔记(七)自己主动引用计数
- jQuery中绑定事件bind() on() live() one()的异同
- 【原创】Octovis在Ubuntu16.04下运行出现core dump的解决方案
- SPFA 算法详解
- Linux的chattr与lsattr命令详解
- nginx设置目录浏览及解决中文乱码问题
- pip换源安装
- redis集群部署+节点端口修改+数据恢复
- Linux 安装 Mysql 5.7.23
- pointer &; iterator
热门文章
- Maven工程 报 Diamond types are not supported at language level '5'
- xampp中修改mysql默认空密码
- 【搜索】单词接龙 luogu-1019
- Linux符号描述
- post传参params与body的区别(@RequestParam和@RequestBody的区别)
- thinkPHP5 5.0.23 远程代码执行漏洞
- Nexus Repository Manager 3 远程命令执行漏洞(CVE-2020-10199、CVE-2020-10204)
- Centos8部署jdk、mysql8、tomcat,并部署项目到tomcat中
- 【进阶之路】Java的类型擦除式泛型
- 学习Android Jetpack? 入门教程和进阶实战这里全都有!