1. 简介

1.1. 官方网站: https://www.rabbitmq.com/

1.2. 配置文档:https://docs.openstack.org/ha-guide/shared-messaging.html#rabbitmq-configure

2. 安装与配置:

功能与组件 机器名 服务IP 管理IP Processor Cores RAM Storage 备注
Mongo/Redis/RabbitMQ/Memorycached HCTJOSCACHE01 10.30.2.45 172.16.0.45        
Mongo/Redis/RabbitMQ/Memorycached HCTJOSCACHE02 10.30.2.46 172.16.0.46        
Mongo/Redis/RabbitMQ/Memorycached HCTJOSCACHE03 10.30.2.47 172.16.0.47        

2.1. 安装:在每个节点上都做

直接使用yum安装,openstack的yum源中会提供安装包

yum install rabbitmq-server

启动服务(确认cookie文件已经生成)

 ~]# systemctl start rabbitmq-server
~]# ll /var/lib/rabbitmq/.erlang.cookie
-r-------- 1 rabbitmq rabbitmq 20 Dec 6 00:00 /var/lib/rabbitmq/.erlang.cookie

创建用户

#前面的openstack是用户名,后面的openstack是密码
rabbitmqctl add_user openstack openstack
Creating user "openstack" ...

赋权限

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Setting permissions for user "openstack" in vhost "/" ...

停止rabbitMQ

systemctl stop rabbitmq-server

2.2. 配置

在节点01上,把cookie文件scp到另外两个节点上

scp /var/lib/rabbitmq/.erlang.cookie root@hctjoscache02:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@hctjoscache03:/var/lib/rabbitmq/.erlang.cookie

在节点02/03上分别修改权限

# chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
# chmod 400 /var/lib/rabbitmq/.erlang.cookie

在节点01上启动服务并查看集群状态

[root@hctjoscache01 yum.repos.d]# systemctl start rabbitmq-server.service
[root@hctjoscache01 yum.repos.d]# rabbitmqctl cluster_status
Cluster status of node rabbit@hctjoscache01 ...
[{nodes,[{disc,[rabbit@hctjoscache01]}]},
{running_nodes,[rabbit@hctjoscache01]},
{cluster_name,<<"rabbit@hctjoscache01.hccos.cn">>},
{partitions,[]},
{alarms,[{rabbit@hctjoscache01,[]}]}]

在节点02和03上启动服务,停止本机服务,加入01的集群(成功加入以后,再启动服务就不用执行stop_app了)

[root@hctjoscache02 ~]# systemctl start rabbitmq-server
[root@hctjoscache02 ~]# rabbitmqctl stop_app
Stopping node rabbit@hctjoscache02 ...
[root@hctjoscache02 ~]# rabbitmqctl join_cluster --ram rabbit@hctjoscache01
Clustering node rabbit@hctjoscache02 with rabbit@hctjoscache01 ...
[root@hctjoscache03 ~]# systemctl start rabbitmq-server
[root@hctjoscache03 ~]# rabbitmqctl stop_app
Stopping node rabbit@hctjoscache03 ...
[root@hctjoscache03 ~]# rabbitmqctl join_cluster --ram rabbit@hctjoscache01
Clustering node rabbit@hctjoscache03 with rabbit@hctjoscache01 ...

在01节点上查看状态

[root@hctjoscache01 yum.repos.d]# rabbitmqctl cluster_status
Cluster status of node rabbit@hctjoscache01 ...
[{nodes,[{disc,[rabbit@hctjoscache01]},
{ram,[rabbit@hctjoscache03,rabbit@hctjoscache02]}]},
{running_nodes,[rabbit@hctjoscache01]},
{cluster_name,<<"rabbit@hctjoscache01.hccos.cn">>},
{partitions,[]},
{alarms,[{rabbit@hctjoscache01,[]}]}]

配置一下ha的模式,我没太明白官方文档中的意思,不过看起来是说这样配置的话可以实现HA模式,消息可以镜像到其他的节点

rabbitmqctl set_policy ha-all '^(?!amq\.).*' '{"ha-mode": "all"}'

【Linux】【Services】【MessageQueue】搭建高可用rabbitMQ的更多相关文章

  1. 搭建高可用rabbitmq集群及spring boot实现集群配置

    java spring boot配置: //具体参看了配置的源码 org.springframework.boot.autoconfigure.amqp.RabbitProperties //Rabb ...

  2. 搭建高可用mongodb集群(四)—— 分片(经典)

    转自:http://www.lanceyan.com/tech/arch/mongodb_shard1.html 按照上一节中<搭建高可用mongodb集群(三)-- 深入副本集>搭建后还 ...

  3. [转]搭建高可用mongodb集群(四)—— 分片

    按照上一节中<搭建高可用mongodb集群(三)—— 深入副本集>搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的 ...

  4. [转]搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  5. 搭建高可用mongodb集群(四)—— 分片

    按照上一节中<搭建高可用mongodb集群(三)—— 深入副本集>搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的 ...

  6. 搭建高可用mongodb集群(三)—— 深入副本集内部机制

    在上一篇文章<搭建高可用mongodb集群(二)—— 副本集> 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制.还是带着副本集的问题来看吧! 副本集故障转移,主节点是如何选举的? ...

  7. 搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  8. 搭建高可用mongodb集群(一)——配置mongodb

    在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...

  9. 通过LVS+Keepalived搭建高可用的负载均衡集群系统

    1. 安装LVS软件      (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...

随机推荐

  1. C 数组类型语法总结

    数组类型语法总结 数组指针 和 指针数组 区分 数组指针是一个指针,只对应类型的数组.指针数组是一个数组,其中每个元素都是指针 数组指针遵循指针运算法则.指针数组拥有c语言数组的各种特性 数组类型重命 ...

  2. kafaka高效吞吐量-生产端,服务端,消费端

    零拷贝:sendfile 生产端 生产端:消息压缩,缓存批量发送,异步解耦 多线程并发:防止某一个业务阻塞等待 接收消息缓存 BufferPool设计:不释放 服务端 Reactor模型,顺序写,页缓 ...

  3. 【Java】String、StringBuffer、StringBuilder

    java.lang.String类 概述 String:代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现 String声明为final,不可被 ...

  4. python连接集群mongodb,封装增删改查

    1.下载pymongo pip install pymongo 2.直接上代码 [ini配置文件] 封装读ini省略~~ [db.py] class Database(): def __init__( ...

  5. 大一C语言学习笔记(6)---自省篇--流程控制;break,continue,return间的异同;数组应用到循环语句中需要注意的问题;++i 和 i++的异同等。

    下面是傻瓜博主"曾经"犯过的错和一些心得:        ༼ つ ◕_◕ ༽つ 1.要想流程控制学好,一定要学会化繁为简,举栗子: 三目运算符 (略?略:略)---就是一个数字嘛, ...

  6. 华为开发者大会主题演讲:3D建模服务让内容高效生产

    内容来源:华为开发者大会2021 HMS Core 6 Graphics技术论坛,主题演讲<3D建模服务使能3D内容高效生产>. 演讲嘉宾:华为消费者云服务 AI算法专家 3D建模服务(3 ...

  7. js 正则表达式 验证与限制

    .... //验证身份证格式 function onIDCardsValidation(e) { if (e.isValid) { var pattern = /\d*/; if (!(e.value ...

  8. UOJ 266 - 【清华集训2016】Alice和Bob又在玩游戏(SG 定理+01-trie)

    题面传送门 神仙题. 首先注意到此题的游戏是一个 ICG,故考虑使用 SG 定理解决这个题,显然我们只需对每个连通块计算一遍其 SG 值异或起来检验是否非零即可.注意到我们每删除一个点到根节点的路径后 ...

  9. 利用vcftools比较两个vcf文件

    因为最近有一项工作是比较填充准确性的,中间有用到vcftools比较两个vcf文件. 使用命令也很简单: 1 vcftools --vcf file1.snp.vcf --diff file2.snp ...

  10. Web网页服务器软件——介绍

    Web网页服务器软件与硬件服务器的关系,就像软件和电脑的关系. 目前有,世界使用排列第一名的Apache.还有可以在Linux系统下快速方便地搭建出LNMP Web服务环境的Nginx(其中LNMP分 ...