集群架构和CentOS7安装RabbitMQ集群(单机版)
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页面可以看见集群信息(两个磁盘节点,一个内存节点)

集群架构和CentOS7安装RabbitMQ集群(单机版)的更多相关文章
- CentOS7安装rabbitmq集群(二进制)
一.RabbiMQ简介 RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡. RabbiMQ模式 RabbitMQ模式大概分为以下三种: ...
- CentOS7安装RabbitMQ集群
实验环境 RabbitMQ 集群 server1.example.com IP: 10.10.10.11 Node: diskserver2.example.com IP: 10.1 ...
- Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置
RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ是一套开源(MPL)的消息队列服务软件,是由LShift提供的一 ...
- CentOS7环境RabbitMQ集群配置管理(转载)
CentOS7环境RabbitMQ集群配置管理(转载) CentOS7系统内核版本:3.10.0-514.26.2.el7.x86_64 一.对应主机host地址(三台主机host文件要保持一致) ...
- docker-compose安装rabbitmq集群(主从集群---》镜像集群)
docker-compose安装rabbitmq集群(主从集群--->镜像集群) yls 2020/5/11 创建docker-compose.yml 文件 version: '3' servi ...
- k8s中安装rabbitmq集群
官方文档地址:https://www.rabbitmq.com/kubernetes/operator/quickstart-operator.html 要求 1.k8s版本要1.18及其以上 2.能 ...
- centos7 环境安装rabbitmq 集群
继上一篇https://www.cnblogs.com/drafire/p/10062891.html ,这篇博客继续介绍centos 7下安装rabbitmq的集群. 今天在公司搞了一天的rabbi ...
- CentOS7环境RabbitMQ集群配置管理
CentOS7系统内核版本:3.10.0-514.26.2.el7.x86_64 一.对应主机host地址(三台主机host文件要保持一致) 10.100.2.10 v01-app-rabbitmq0 ...
- Windows安装RabbitMQ集群的几个注意点
记录一下RabbitMQ在windows平台下安装的几个注意点- -,好记性不如烂笔头 安装过程与Linux安装一致,教程参照官网集群配置:此处只列举出几个注意点: 1. erlang的版本需要一致, ...
随机推荐
- 7-Java-C(骰子游戏)
题目描述: 我们来玩一个游戏. 同时掷出3个普通骰子(6个面上的数字分别是1~6). 如果其中一个骰子上的数字等于另外两个的和,你就赢了. 下面的程序计算出你能获胜的精确概率(以既约分数表示) pub ...
- 运行外部exe
bool CFileOperate::lauchCAD() { //启动ZWCAD CString OutputPath; STARTUPINFO si; //一些必备参数设置 memset(& ...
- python基础一day3 字符串
对字符串进行的任何操作都是形成新的字符串. 切片顾头不顾尾 倒着取: 因为顾头不顾尾,所以4要取到 当步长省略时,可以同时省略最后一个冒号 写0时,取不到,什么都不写,可以取到 倒着取出全部的值,两种 ...
- eclipse生成spring boot jar包
1.右击项目,选择Run As - Maven clean 2.右击项目,选择Run As - Maven install 3.成功后 会在项目的target文件夹下生成jar包 4.将打包好的jar ...
- New Arrival MB SD Connect Compact 5 (MB SD C4) Star Diagnosis
MB SD Connect Compact 5 has same function as SD C4 but with new design, support both cars and trucks ...
- LInux设备驱动分析—— kmalloc和kzalloc函数
今晚在研究EVM5728开发板上面Linux系统的IIC设备驱动程序,偶然之间看到驱动程序中有一处使用了kzalloc函数,本人之前都是使用Linux内核提供的kmalloc / kfree函数来给设 ...
- Linux修改网卡名
问题现象:戴尔机器网卡名为em1,修改为eth0a)由于未发现有/etc/udev/rule.d/70-persistent-net.rules文件,重启后也未发现此文件手动执行/lib/udev/w ...
- running Fluent on Apocrita Cluster
two files: code.sh, code.jou code.sh #!/bin/bash #$ -cwd #$ -j y #$ -m bea #$ -M k.ai@qmul.ac.uk #$ ...
- 跟http相关的
http http 中 请求: 请求行 请求方式 采用协议 版本号 网址 请求头 客户端可以接受数据类型 可以接受语言 可以接受的压缩格式 请求 ...
- 安装完Centos 7后的一些处理
1.安装dkms:dkms-2.2.0.3-31.1.noarch.rpm 2.安装显卡驱动:amdgpu-pro-18.10-572953 3.启动图形界面使用init 5 不能使用startx