RabbitMQ集群

一、前言

线上的 RabbitMQ用的是单节点,前段时间由于机器内存不足,发生了OOM,业务受到了影响,故打算换成 RabbitMQ集群。RabbitMQ模式有三种,分别是:单一模式、普通模式、镜像模式,镜像模式才是RabbitMQ真正的HA方案,关于更详细的简绍,请移步到官网:http://www.rabbitmq.com/ha.html ,下面是关于RabbitMQ集群的部署过程:

二、环境

erlang版本:

erlang-19.0.4-1.el7.centos.x86_64

rabbitmq版本:

rabbitmq-server-3.6.6

服务器主机名:

ip-172-31-13-114  磁盘节点
ip-172-31-15-124 内存节点
ip-172-31-11-216 内存节点

三、安装

1、erlang安装

a、wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
b、rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
c、Add the following lines to some file in /etc/yum.repos.d/:
[erlang-solutions]
name=Centos $releasever - $basearch - Erlang Solutions
baseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
enabled=1
d、yum install erlang esl-erlang

2、RabbitMQ 安装

a、 wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-generic-unix-3.6.6.tar.xz
b、tar -xvf rabbitmq-server-generic-unix-3.6.6.tar.xz
c、 mv rabbitmq_server-3.6.6 /data/rabbitmq
d、cd /data/rabbitmq/;./sbin/rabbitmq-server -detached

四、配置

1、需要配置host,不然集群没用办法创建,我这里用的aws的ec2,用的默认主机名,这里就不修改了

2、拷贝.erlang.cookie,RabbitMQ集群依赖erlang集群才能工作,所以需要先构建erlang集群,.erlang.cookie文件在启动用户的家目录下,我这里是用work用户启动的RabbitMQ,拷贝一台服务器的/home/work/.erlang.cookie到其他机器并设置权限

chown work:work  /home/work/.erlang.cookie
chmod 400 /home/work/.erlang.cookie

3、设置集群的模式:镜像

rabbitmqctl set_policy ha-all "^" ‘{"ha-mode":"all"}‘

PS:

在任意一个节点操作即可,这里在ip-172-31-13-114上操作

4、加入集群(ip-172-31-15-124 、ip-172-31-11-216 )

rabbitmqctl stop_app
rabbitmqctl join_cluster --ram [email protected]
rabbitmqctl start_app

PS:

--ram 指定内存节点类型,--disc指定磁盘节点类型

5、查看集群

rabbitmqctl cluster_status

6、启用管理和监控模块

rabbitmq-plugins enable rabbitmq_management

7、设置集群的名字

rabbitmqctl set_cluster_name my_mq

8、添加用户:

rabbitmqctl add_user spider spider

9、设置用户权限策略

rabbitmqctl set_user_tags spider administrator

10、vhost授权

rabbitmqctl set_permissions -p / spider ‘.*‘ ‘.*‘ ‘.*‘

11、改变节点类型为磁盘节点

rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
rabbitmqctl start_app

12、将节点移出集群

将节点ip-172-31-11-216 移出集群前,先要stop_app,然后reset节点

[[email protected] ~]# rabbitmqctl stop_app
Stopping node [email protected] ...
[[email protected] ~]# rabbitmqctl reset
Resetting node [email protected] ...
时间: 2024-10-27 06:50:07

RabbitMQ集群的相关文章

rabbitMQ 集群的配置

参考文档:http://blog.csdn.net/woogeyu/article/details/51119101 环境说明 在两个不同的主机上创建两个节点主机IP,主机名如下 10.176.0.13 node1 10.176.0.19 node2 1.分别在两个主机上安装rabbitMQ(一个主机一个rabbitMQ),注意语言环境erlang和rabbitMQ的版本必须一致 2.集群的配置 RabbitMQ集群中所有节点都是平等的,没有绝对的主次之分,每一个节点的配置信息都会在集群中进行同

RabbitMQ集群创建

环境: OS:CentOS6.75 RabbitMQ Vervison :3.6.5 节点: node1 : mq01  172.16.42.128 node2:  mq02  172.16.42.135 配置: 1.两台机器上都安装RabbitMQ 这里的安装包括socat.Erlang.rabbitmq-server包的安装,已经环境变量和config文件的配置,请参考RabbitMQ安装,先不要急着创建用户.虚拟主机和配置权限.这些等集群创建好了再做 2.配置hosts文件 mq01 [[

RabbitMQ集群配置与HA

1.安装RabbitMQ 1)下载和安装erlang 下载erlang wget http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el6.x86_64.rpm 安装erlang,root用户使用rpm安装 rpm -ihv erlang-18.1-1.el6.x86_64.rpm 2)下载和安装RabbitMQ 下载RabbitMQ wget https://github.com/rabbitmq/rabbitmq-server/rel

centos7.3 rabbitmq集群

RabbitMQ集群概述 通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接收. 这些节点通过 RabbitMQ HA 队列(镜像队列)进行消息队列结构复制.本方案中搭建 3 个节点,并且都是磁盘节点(所有节点状态保持一致,节点完全对等),只要有任何一个节点能够工作,RabbitMQ 集群对外就能提供服务. 安装 Erlang.RabbitMQ http

基于Kubernetes(k8s)的RabbitMQ 集群

目前,有很多种基于Kubernetes搭建RabbitMQ集群的解决方案.今天笔者今天将要讨论我们在Fuel CCP项目当中所采用的方式.这种方式加以转变也适用于搭建RabbitMQ集群的一般方法.所以如果你想要设计自己的解决方案,你应该收集一些更符合你定制化需求的文章. 命名你的集群 在Kubernetes内部运行RabbitMQ集群会遇到一系列有意思的问题.最先会遇到的问题是为了使各个节点之间互相可见,我们应该如何命名各个节点.以下是一些符合规范的不同的命名方法: [email protec

高可用RabbitMQ集群安装配置

RabbitMQ集群安装配置+HAproxy+Keepalived高可用 rabbitmq 集群 消息队列 RabbitMQ简介 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现. AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然.AMQP的主

RabbitMQ集群、镜像部署配置

1   RABBITMQ简介及安装 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.ActionScript.XMPP.STOMP等,支持AJAX.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗. AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用

RabbitMQ集群搭建

rabbitmq集群是通过erlang的分布式特性进行rabbitmq集群,各个rabbitmq的服务为相应的节点,每个节点都提供给客户端连接,进行消息的发送与接收. 环境:CentOS 6.8 64位 服务器:192.168.179.128 wangwq01 192.168.179.129 wangwq02 192.168.179.130 wangwq03 1. 主机域名解析 rabbitmq各节点之间通信使用域名,所以集群成员中所有主机名都要可解析,这里使用修改hosts文件来实现解析. 2

CentOS+rabbitMQ集群配置

1.实验环境 rabbitmq-node1.com192.168.1.112 rabbitmq-node2.com192.168.1.113 rabbitmq-node3.com192.168.1.128 2.配置前检查同步时间 #ntpdate pool.ntp.org 3.注意一定要修改hosts #cat /etc/hosts 192.168.1.112   rabbitmq-node1.com rabbitmq-node1 192.168.1.113   rabbitmq-node2.c