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集群(单机版)的更多相关文章

  1. CentOS7安装rabbitmq集群(二进制)

    一.RabbiMQ简介 RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡. RabbiMQ模式 RabbitMQ模式大概分为以下三种: ...

  2. CentOS7安装RabbitMQ集群

    实验环境 RabbitMQ 集群 server1.example.com    IP: 10.10.10.11    Node: diskserver2.example.com    IP: 10.1 ...

  3. Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置

    RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ是一套开源(MPL)的消息队列服务软件,是由LShift提供的一 ...

  4. CentOS7环境RabbitMQ集群配置管理(转载)

    CentOS7环境RabbitMQ集群配置管理(转载)   CentOS7系统内核版本:3.10.0-514.26.2.el7.x86_64 一.对应主机host地址(三台主机host文件要保持一致) ...

  5. docker-compose安装rabbitmq集群(主从集群---》镜像集群)

    docker-compose安装rabbitmq集群(主从集群--->镜像集群) yls 2020/5/11 创建docker-compose.yml 文件 version: '3' servi ...

  6. k8s中安装rabbitmq集群

    官方文档地址:https://www.rabbitmq.com/kubernetes/operator/quickstart-operator.html 要求 1.k8s版本要1.18及其以上 2.能 ...

  7. centos7 环境安装rabbitmq 集群

    继上一篇https://www.cnblogs.com/drafire/p/10062891.html ,这篇博客继续介绍centos 7下安装rabbitmq的集群. 今天在公司搞了一天的rabbi ...

  8. CentOS7环境RabbitMQ集群配置管理

    CentOS7系统内核版本:3.10.0-514.26.2.el7.x86_64 一.对应主机host地址(三台主机host文件要保持一致) 10.100.2.10 v01-app-rabbitmq0 ...

  9. Windows安装RabbitMQ集群的几个注意点

    记录一下RabbitMQ在windows平台下安装的几个注意点- -,好记性不如烂笔头 安装过程与Linux安装一致,教程参照官网集群配置:此处只列举出几个注意点: 1. erlang的版本需要一致, ...

随机推荐

  1. JDBC性能优化篇

    系统性能. 少用Metadata方法     与其它的JDBC方法相比, 由ResultSet对象生成的metadata对象的相对来说是很慢的. 应用程序应该缓存从ResultSet返回的metada ...

  2. SQLite_Home

    SQLite教程 SQLite是一个库,实现了一个独立的软件,serverless zero-configuration.事务SQL数据库引擎.SQLite是世界上最广泛的部署SQL数据库引擎.SQL ...

  3. python 与

    python的与运算是 and &表示的是位运算 c++则是& 和 &&

  4. Opencascade 选择器算法

    算法的阶段 该算法包括预处理和三个主要阶段. 使用深度优先搜索逐层遍历所有对象 . 预处理 计算平截头体及其主要特征的计算. 第一阶段 - 遍历第一级BVH树 在成功构建选择平截头体之后,算法开始遍历 ...

  5. mybatis-使用junit测试与main方法测试结果不一致问题

    今天使用ieda写mybatis程序感觉太不友好了,而且也没找到问题所在.问题:写的user.xml中的语句与输出的语句不一样.尝试了各种办法都没有解决. mybatis配置的使用的查询实体.xml ...

  6. 【2018 CCPC网络赛】1003 - 费马小定理

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6440 这题主要是理解题意: 题意:定义一个加法和乘法,使得 (m+n)p = mp+np; 其中给定 ...

  7. 【Linux】Centos6的iptables防火墙设置

    1,查看防火墙状态 # service iptables status //或 # /etc/init.d/iptables status 2,防火墙的启动.重启,关闭 # service iptab ...

  8. IDEA中远程Debug调试

    一.设置JVM支持远程Debug调式 由于我的应用是springboot, 所以直接使用java -jar的方法将服务启动起来. java -Xdebug -Xrunjdwp:transport=dt ...

  9. Could not find conduit initiator for address:xxxxxxxxx and transport: http://schemas.xmlsoap.org/soap/http

    <properties> <cxf.version>3.1.12</cxf.version> </properties> <dependencie ...

  10. luogu2869 [USACO07DEC]美食的食草动物Gourmet Grazers

    先满足挑剔的 #include <algorithm> #include <iostream> #include <cstdlib> #include <cs ...