1. 集群架构

1.1 四种内部元数据

队列元数据、交换器元数据、绑定元数据、vhost元数据。

单一节点中:会将数据存储到内存,同时将持久化元数据保存到硬盘。

集群中: 存储到磁盘上、内存中。

集群中的队列:不是每一个rabbitmq节点都有所有队列的拷贝,集群只会在单个节点上创建完整信息。

1.2 、内存节点和磁盘节点

内存节点: 元数据定义都存储在内存中。内存节点有出色的性能。

磁盘节点: 元数据定义都存储在磁盘中(单节点服务器都是磁盘节点)。磁盘节点能持久化信息。

rabbitmq集群中至少有一个磁盘节点。当节点加入或者离开集群时,必须将变更通知到至少一个磁盘节点。

如果集群只有一个磁盘节点,正好它崩了。此时集群还可以路由消息。但是不能创建元数据和管理用户和节点。解决方案是集群中设置两个磁盘节点。

2. 单机集群搭建

2.1 配置集群前,先确保第一次安装的rabbitmq服务关闭:
  1. rabbitmqctl stop
2.2 在一台服务器上启动3个节点的集群
  1. RABBITMQ_NODE_PORT=5672 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]" RABBITMQ_NODENAME=rabbit rabbitmq-server -detached
  2. RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit_1 rabbitmq-server -detached
  3. 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

  1. [root@localhost ~]# rabbitmqctl -n rabbit@localhost add_user admin admin
  2. [root@localhost ~]# rabbitmqctl -n rabbit@localhost set_user_tags admin administrator
  3. [root@localhost ~]# rabbitmqctl -n rabbit@localhost set_permissions -p / admin ".*" ".*" ".*"

rabbit_1

  1. [root@localhost ~]# rabbitmqctl -n rabbit_1 add_user admin admin
  2. [root@localhost ~]# rabbitmqctl -n rabbit_1 set_user_tags admin administrator
  3. [root@localhost ~]# rabbitmqctl -n rabbit_1 set_permissions -p / admin ".*" ".*" ".*"

rabbit_2:

  1. [root@localhost ~]# rabbitmqctl -n rabbit_2 add_user admin admin
  2. [root@localhost ~]# rabbitmqctl -n rabbit_2 set_user_tags admin administrator
  3. [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为磁盘节点
  1. [root@localhost ~]# rabbitmqctl -n rabbit_1 stop_app
  2. [root@localhost ~]# rabbitmqctl -n rabbit_1 reset
  3. [root@localhost ~]# rabbitmqctl -n rabbit_1 join_cluster rabbit@localhost
  4. [root@localhost ~]# rabbitmqctl -n rabbit_1 start_app
2.6 配置rabbit_2为RAM内存节点
  1. [root@localhost ~]# rabbitmqctl -n rabbit_2 stop_app
  2. [root@localhost ~]# rabbitmqctl -n rabbit_2 reset
  3. [root@localhost ~]# rabbitmqctl -n rabbit_2 join_cluster rabbit@localhost --ram
  4. [root@localhost ~]# rabbitmqctl -n rabbit_2 start_app
2.7 查看集群状态:
  1. [root@localhost ~]# rabbitmqctl cluster_status

得到以下结果:

  1. [root@localhost ~]# rabbitmqctl cluster_status
  2. Cluster status of node rabbit@localhost
  3. [{nodes,[{disc,[rabbit@localhost,rabbit_1@localhost]},
  4. {ram,[rabbit_2@localhost]}]},
  5. {running_nodes,[rabbit_2@localhost,rabbit_1@localhost,rabbit@localhost]},
  6. {cluster_name,<<"rabbit@localhost">>},
  7. {partitions,[]},
  8. {alarms,[{rabbit_2@localhost,[]},
  9. {rabbit_1@localhost,[]},
  10. {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. Tcl介绍和基础语法

    Tcl的背景 Tcl(读作tickle)诞生于80年代的加州大学伯克利分校,作为一种简单高效可移植性好的脚本语言,目前已经广泛应用在几乎所有的EDA工具中.Tcl 的最大特点就是其语法格式极其简单,采 ...

  2. IOS之pageControl

    用户点击页面控件,会触发UIControlEventValueChanged事件,并启动设置为控件动作的任何方法.可以通过调用currentPage查询控件的新值,并通过调整numberOfPages ...

  3. 在proe模型文件里面存储用户数据

    存储外部数据 author:visualsan 2014.2 上海 1.简介 利用外部数据存储外部接口,可以在模型文件里面尺寸用户自定义数据.在模型保存时数据自动存储,在模型载入时数据自动载入.外部数 ...

  4. VBA Promming——分支语句(解二元一次方程)

    分支语句 If expression1 Then expressions ElseIf expression2 Then expressions Else expression End If 注:VB ...

  5. 【整理】 vue-cli 打包后显示favicon.ico小图标

    vue-cli 打包后显示favicon.ico小图标 https://www.cnblogs.com/mmzuo-798/p/9285013.html

  6. 使用SpringBoot-JPA进行自定义的保存及批量保存

    更多精彩博文,欢迎访问我的个人博客 说明 SpringBoot版本:2.1.4.RELEASE java版本:1.8 文中所说JPA皆指spring-boot-starter-data-jpa 使用J ...

  7. spring注解开发-容器创建全过程(源码)

    1.Spring容器的创建会经历refresh()方法[创建刷新](以AnnotationConfigApplicationContext为例) public AnnotationConfigAppl ...

  8. C语言程序返回值为int的时候,不同值代表不同的意义

    这个是我自己给自己的代码定的标准,方便自己阅读与编码.他人代码情况不可套用 1 执行成功 0 出现错误,不影响程序执行 -1 执行失败 -2 程序内部致命错误,退出程序

  9. 10. GLOBAL_STATUS 与 SESSION_STATUS

    10. GLOBAL_STATUS 与 SESSION_STATUS 注意 从MySQL 5.7.6开始,show_compatibility_56系统变量的值会影响此处描述的表中的可用信息. 有关详 ...

  10. ubuntu18.04 server配置静态ip

    最新发布的ubuntu18.04 server,启用了新的网络工具netplan,对于命令行配置网络参数跟之前的版本有比较大的差别,现在介绍如下:1.其网络配置文件是放在/etc/netplan/50 ...