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页面可以看见集群信息(两个磁盘节点,一个内存节点)

最新文章

  1. 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇
  2. ExpandableListView 里面嵌套GridView实现高度自适应
  3. 怎么通过 Microsof Office Project 2010 来写功能开发计划
  4. sqlcmd 登录和执行语句。
  5. jquery_dialog实现效果
  6. Http请求和响应应用
  7. UVa 11732 (Tire树) &quot;strcmp()&quot; Anyone?
  8. 数论F - Strange Way to Express Integers(不互素的的中国剩余定理)
  9. 剑指 offer代码解析——面试题39推断平衡二叉树
  10. python API验证
  11. 读取FTP 图片文件,并显示,非下载
  12. P NP NPC
  13. error ...项目路径 \node_modules\chromedriver: Command failed.
  14. 京东在html5页面中打开本地app的解决方案
  15. 洛谷P4151 最大XOR和路径 [WC2011] 线性基+图论
  16. Jerasure库简介及使用范例
  17. HK Openstack Summit 归来有感
  18. aircrack-ng 工具集学习
  19. POJ2228 Naptime
  20. 超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群

热门文章

  1. http://www.360doc.com/content/10/0928/12/11991_57014502.shtml
  2. sql server 全部错误号详释
  3. SPICE-HTML5 鼠标指针BUG修复
  4. 职业生涯手记——电视剧剧情O.O
  5. du - 报告磁盘空间使用情况
  6. QT_6_QMainWindow
  7. 性能测试,如何得到大量token,并保存在本地文件中
  8. Word转html并移植到web项目
  9. 2018 CCPC 女生赛 hdoj6288 缺失的数据范围
  10. 【2018 CCPC网络赛】1001 - 优先队列&amp;贪心