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. 攻防世界 WEB 高手进阶区 XCTF 4th-CyberEarth ics-06 Writeup

    攻防世界 WEB 高手进阶区 XCTF 4th-CyberEarth ics-06 Writeup 题目介绍 题目考点 掌握暴力破解手段 Writeup 打开链接 http://220.249.52. ...

  2. sqlalchemy insert or ignore

    insert ignore # insert ignoreinsert_stmt = TimePoint.__table__.insert().prefix_with(" ignore&qu ...

  3. Python基础(数据类型与变量、字符串和编码)

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- # name = 200 # if name > 100: # print(name,'大于100' ...

  4. 1组-Alpha冲刺-1/6

    一.基本情况 队名:震震带着六菜鸟 组长博客:https://www.cnblogs.com/Klein-Wang/p/15526531.html 小组人数:7人 二.冲刺概况汇报 王业震 过去两天完 ...

  5. Spark SQL知识点大全与实战

    Spark SQL概述 1.什么是Spark SQL Spark SQL是Spark用于结构化数据(structured data)处理的Spark模块. 与基本的Spark RDD API不同,Sp ...

  6. [atARC066F]Contest with Drinks Hard

    先不考虑修改,那么很明显即对于每一个极长的的区间,若其长度为$l$,有${l+1\choose 2}$的贡献 考虑dp去做,即$f_{i}$表示前$i$个数最大的答案,则$$f_{i}=\max(\m ...

  7. [loj6271]生成树求和

    将每一位拆开考虑,即不妨假设$0\le c<3$ 考虑矩阵树定理,即统计所有生成树边权乘积的和,但我们这里要将边权相加,很明显将其作为幂次(如果作为$cx+1$无法对3取模) 更具体的,也就是将 ...

  8. [loj3276]遗迹

    假设已知$a_{i}$,通过以下方式确定$b_{i}$:从后往前枚举每一个数$i$,先令$b_{i}=a_{i}$,再将$b_{i}$不断减1直至不存在$j>i$且$b_{i}=b_{j}$或$ ...

  9. Assassin暗杀者-自用短小精悍的webshell管理工具分享

    Assassin Assassin是一款精简的基于命令行的webshell管理工具,它有着多种payload发送方式和编码方式,以及精简的payload代码,使得它成为隐蔽的暗杀者,难以被很好的防御. ...

  10. Codeforces 566C - Logistical Questions(点分治)

    Codeforces 题目传送门 & 洛谷题目传送门 神仙题 %%% 首先考虑对这个奇奇怪怪的 \(t^{3/2}\) 进行一番观察.考虑构造函数 \(f(x)=ax^{3/2}+b(d-x) ...