rabbitMQ高可用集群

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rabbitMQ高可用集群相关的知识,希望对你有一定的参考价值。

准备两台机器(均要安装设置)

cat /etc/hosts   ##集群机器都要添加host解析
192.168.1.7  gluster01
192.168.1.8  gluster02

调整两台机器的系统限制(内核参数调整)

fs.file-max设置
# vim /etc/sysctl.conf,添加:   
fs.file-max = 65535
#sysctl -p
每用户限制(ulimit -n)
# vim /etc/security/limits.conf 
在最后一行添加如下命令    
root soft nofile 65535
root hard nofile 65535    
* soft nofile 65535
* hard nofile 65535
# vim /etc/rc.local    
ulimit -SHn 65535


首先安装erlang

在安装RabbitMQ之前,我们需要安装Erlang,官方建议使用打包版本,使用官方生成的一个软件包(https://github.com/rabbitmq/erlang-rpm),它只提供运行RabbitMQ所需要的组件,它可能会也可能不适合运行其他基于Erlang的软件或第三方RabbitMQ插件

vim /etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
yum install erlang -y
cd /home/

安装RabbitMQ服务器

wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.0/rabbitmq-server-3.7.0-1.el7.noarch.rpm
rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
yum install rabbitmq-server-3.7.0-1.el7.noarch.rpm

启动服务器

systemctl enable rabbitmq-server
systemctl start rabbitmq-server

修改rabbitmq配置

修改/etc/systemd/system/multi-user.target.wants/rabbitmq-server.service
在[Service]中,增加LimitNOFILE=30000(具体数值根据需要)
执行systemctl daemon-reload
重启rabbitmq服务
>执行rabbitmqctl status  查看到下面内容
 {disk_free_limit,50000000},
 {disk_free,13644468224},
 {file_descriptors,
     [{total_limit,29900},
      {total_used,10},
      {sockets_limit,26908},
      {sockets_used,0}]},
 {processes,[{limit,1048576},{used,411}]},
 {run_queue,0},
 {uptime,18474},
 {kernel,{net_ticktime,60}}]

 

rabbitmq自带管理后台,安装后需要配置开启

进入rabbitmq安装目录中的sbin目录执行
rabbitmq-plugins enable rabbitmq_management
重启rabbitmq服务生效
打开http://IP:15672/即可看到管理后台
用户名密码均为guest
管理界面插件:
rabbitmq-plugins enable rabbitmq_management
添加账号:
rabbitmqctl add_user admin admin
添加 权限tag
rabbitmqctl set_user_tags admin administrator

   浏览器打开地址查看管理页面

技术分享图片


 当两个节点都正常启动后,开始设置集群

1 hosts文件中必须添加机器解析 /etc/hosts文件

2 设置界面节点验证 Erlang Cookie   

/var/lib/rabbitmq/.erlang.cookie    修改保证两个节点该文件内容相同方能实现集群
RabbitMQ节点和CLI工具(例如rabbitmqctl)使用cookie来确定它们是否被允许相互通信,
要使两个节点能够通信,它们必须具有相同的共享密钥,称为Erlang Cookie.
Cookie只是一个字符串,最多可以有255个字符。它通常存储在本地文件中
该文件必须只能由所有者访问(400权限)。
每个集群节点必须具有相同的cookie,
文件位置/var/lib/rabbitmq/.erlang.cookie,
把rabbit1、rabbit2设置成一样的即可,权限是400

3 重启所有节点

systemctl restart rabbitmq-server

4 查看集群状态

rabbitmqctl cluster_status

5 将节点加入集群(将gluster02或者03等  加入gluster01)

[[email protected] ~]# 在机器02上
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]
rabbitmqctl start_app
systemctl restart rabbitmq-server
或者
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram [email protected]   ##设置问RAM节点机器  必须保证有一台是disc
rabbitmqctl start_app  
systemctl restart rabbitmq-server


也可以用rabbitmqctl change_cluster_node_type  ram  设置RAM


集群成功后

rabbitmqctl cluster_status

[[email protected] ~]# rabbitmqctl cluster_status
Cluster status of node [email protected] ...
[{nodes,[{disc,[[email protected]]},{ram,[[email protected]]}]},
 {running_nodes,[[email protected],[email protected]]},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]},
 {alarms,[{[email protected],[]},{[email protected],[]}]}]
 
 [[email protected] ~]# rabbitmqctl cluster_status
Cluster status of node [email protected] ...
[{nodes,[{disc,[[email protected]]},{ram,[[email protected]]}]},
 {running_nodes,[[email protected],[email protected]]},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]},
 {alarms,[{[email protected],[]},{[email protected],[]}]}]

技术分享图片


现在机器已经添加了,接下来要进行exchange、queue 高可用策略,进行页面操作

1 添加用户

技术分享图片

2 添加主机

技术分享图片

3  编辑主机用户

技术分享图片

技术分享图片

技术分享图片

4 设置policies 策略

技术分享图片

技术分享图片

5 设置queues队列

技术分享图片


6 完成后查看队列集群状态,下面是集群成功状态

技术分享图片



注意:默认rabbitmq.conf配置文件是没有的,如果我们想自定义一些配置,可以创建/etc/rabbitmq/rabbitmq.conf,修改后的配置会覆盖内置的配置  更多配置项可参看http://www.cnblogs.com/sellsa/p/8036909.html



以上是关于rabbitMQ高可用集群的主要内容,如果未能解决你的问题,请参考以下文章

搭建 RabbitMQ Server 高可用集群

高可用RabbitMQ集群安装配置

Rabbitmq +Haproxy +keepalived 实现高可用集群

Centos7.9搭建rabbitmq+haproxy+keepalived高可用集群

怎么保证RabbitMQ和kafuka集群的高可用性?

RabbitMQ 集群与高可用配置