集群架构和CentOS7安装RabbitMQ集群(单机版)
2024-08-30 18:51:04
1. 集群架构
1.1 四种内部元数据
队列元数据、交换器元数据、绑定元数据、vhost元数据。
单一节点中:会将数据存储到内存,同时将持久化元数据保存到硬盘。
集群中: 存储到磁盘上、内存中。
集群中的队列:不是每一个rabbitmq节点都有所有队列的拷贝,集群只会在单个节点上创建完整信息。
1.2 、内存节点和磁盘节点
内存节点: 元数据定义都存储在内存中。内存节点有出色的性能。
磁盘节点: 元数据定义都存储在磁盘中(单节点服务器都是磁盘节点)。磁盘节点能持久化信息。
rabbitmq集群中至少有一个磁盘节点。当节点加入或者离开集群时,必须将变更通知到至少一个磁盘节点。
如果集群只有一个磁盘节点,正好它崩了。此时集群还可以路由消息。但是不能创建元数据和管理用户和节点。解决方案是集群中设置两个磁盘节点。
2. 单机集群搭建
2.1 配置集群前,先确保第一次安装的rabbitmq服务关闭:
rabbitmqctl stop
2.2 在一台服务器上启动3个节点的集群
RABBITMQ_NODE_PORT=5672 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]" RABBITMQ_NODENAME=rabbit rabbitmq-server -detached
RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit_1 rabbitmq-server -detached
RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbit_2 rabbitmq-server -detached
2.3 配置web UI 访问:
rabbit
[root@localhost ~]# rabbitmqctl -n rabbit@localhost add_user admin admin
[root@localhost ~]# rabbitmqctl -n rabbit@localhost set_user_tags admin administrator
[root@localhost ~]# rabbitmqctl -n rabbit@localhost set_permissions -p / admin ".*" ".*" ".*"
rabbit_1
[root@localhost ~]# rabbitmqctl -n rabbit_1 add_user admin admin
[root@localhost ~]# rabbitmqctl -n rabbit_1 set_user_tags admin administrator
[root@localhost ~]# rabbitmqctl -n rabbit_1 set_permissions -p / admin ".*" ".*" ".*"
rabbit_2:
[root@localhost ~]# rabbitmqctl -n rabbit_2 add_user admin admin
[root@localhost ~]# rabbitmqctl -n rabbit_2 set_user_tags admin administrator
[root@localhost ~]# rabbitmqctl -n rabbit_2 set_permissions -p / admin ".*" ".*" ".*"
访问web页面: http://ip:15672/#/ http://ip:15673/#/ http://ip:15674/#/
2.4 第一个rabbit为主节点(磁盘节点)
2.5 配置rabbit_1为磁盘节点
[root@localhost ~]# rabbitmqctl -n rabbit_1 stop_app
[root@localhost ~]# rabbitmqctl -n rabbit_1 reset
[root@localhost ~]# rabbitmqctl -n rabbit_1 join_cluster rabbit@localhost
[root@localhost ~]# rabbitmqctl -n rabbit_1 start_app
2.6 配置rabbit_2为RAM内存节点
[root@localhost ~]# rabbitmqctl -n rabbit_2 stop_app
[root@localhost ~]# rabbitmqctl -n rabbit_2 reset
[root@localhost ~]# rabbitmqctl -n rabbit_2 join_cluster rabbit@localhost --ram
[root@localhost ~]# rabbitmqctl -n rabbit_2 start_app
2.7 查看集群状态:
[root@localhost ~]# rabbitmqctl cluster_status
得到以下结果:
[root@localhost ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@localhost
[{nodes,[{disc,[rabbit@localhost,rabbit_1@localhost]},
{ram,[rabbit_2@localhost]}]},
{running_nodes,[rabbit_2@localhost,rabbit_1@localhost,rabbit@localhost]},
{cluster_name,<<"rabbit@localhost">>},
{partitions,[]},
{alarms,[{rabbit_2@localhost,[]},
{rabbit_1@localhost,[]},
{rabbit@localhost,[]}]}]
访问web页面可以看见集群信息(两个磁盘节点,一个内存节点)
最新文章
- 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇
- ExpandableListView 里面嵌套GridView实现高度自适应
- 怎么通过 Microsof Office Project 2010 来写功能开发计划
- sqlcmd 登录和执行语句。
- jquery_dialog实现效果
- Http请求和响应应用
- UVa 11732 (Tire树) ";strcmp()"; Anyone?
- 数论F - Strange Way to Express Integers(不互素的的中国剩余定理)
- 剑指 offer代码解析——面试题39推断平衡二叉树
- python API验证
- 读取FTP 图片文件,并显示,非下载
- P NP NPC
- error ...项目路径 \node_modules\chromedriver: Command failed.
- 京东在html5页面中打开本地app的解决方案
- 洛谷P4151 最大XOR和路径 [WC2011] 线性基+图论
- Jerasure库简介及使用范例
- HK Openstack Summit 归来有感
- aircrack-ng 工具集学习
- POJ2228 Naptime
- 超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群
热门文章
- http://www.360doc.com/content/10/0928/12/11991_57014502.shtml
- sql server 全部错误号详释
- SPICE-HTML5 鼠标指针BUG修复
- 职业生涯手记——电视剧剧情O.O
- du - 报告磁盘空间使用情况
- QT_6_QMainWindow
- 性能测试,如何得到大量token,并保存在本地文件中
- Word转html并移植到web项目
- 2018 CCPC 女生赛 hdoj6288 缺失的数据范围
- 【2018 CCPC网络赛】1001 - 优先队列&;贪心