ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

高可用的RabbitMQ配置

2021-04-28 19:02:51  阅读:218  来源: 互联网

标签:可用 192.168 配置 rabbitmq rabbitmqctl RabbitMQ rabbit ha 节点


高可用的RabbitMQ配置

高可用的Rabbitmq的镜像集群的部署教程

三台机器:

mq1: 192.168.86.157

mq2: 192.168.86.158

mq3: 192.168.86.159

1.配置IP(三台机器)

#分别在各自的机器中配置host  ip
#例如 mq1
vim /etc/hosts
#添加以下内容
192.168.86.157 mq1
192.168.86.158 mq2
192.168.86.159 mq3
192.168.86.160 mq4

2.环境的安装(三台机器)

#将需要安装的三个文件以及一个依赖库文件上传到相应的文件夹
#依次安装
rpm -ivh openssl-libs-1.0.2k-21.el7_9.x86_64.rpm --force
rpm -ivh erlang-22.0.7-1.el7.x86_64.rpm
rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm
rpm -ivh rabbitmq-server-3.7.18-1.el7.noarch.rpm
#复制配置文件
cp /usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
#d打开配置文件rabbitmq.config
vim /etc/rabbitmq/rabbitmq.config
#61行的注释去掉 注意后面的逗号也要去掉



#开启rabbitmq的相关的插件
rabbitmq-plugins enable rabbitmq_management
#开启mqtt协议的插件
rabbitmq-plugins enable rabbitmq_mqtt
rabbitmq-plugins enable rabbitmq_web_mqtt

# .启动RabbitMQ的服务
	systemctl start rabbitmq-server
	systemctl restart rabbitmq-server
	systemctl stop rabbitmq-server
#查看服务状态(见下图:)
	systemctl status rabbitmq-server

关闭三台机器的防火墙

systemctl disable firewalld
systemctl stop firewalld.service

同步三台机器的erlang的cookie

#在机器mq1上执行
scp /var/lib/rabbitmq/.erlang.cookie root@mq2:/var/lib/rabbitmq/
	scp /var/lib/rabbitmq/.erlang.cookie root@mq3:/var/lib/rabbitmq/
#查看cookie是否一致:
	node1: cat /var/lib/rabbitmq/.erlang.cookie 
	node2: cat /var/lib/rabbitmq/.erlang.cookie 
	node3: cat /var/lib/rabbitmq/.erlang.cookie
# 4.后台启动rabbitmq所有节点执行如下命令,启动成功访问管理界面:
	systemctl stop rabbitmq-server
	rabbitmq-server -detached 

# 5.在node2和node3执行加入集群命令:
	1.关闭       rabbitmqctl stop_app
	2.加入集群    rabbitmqctl join_cluster rabbit@mq1
	3.启动服务    rabbitmqctl start_app

# 6.查看集群状态,任意节点执行:
	rabbitmqctl cluster_status

# 7.如果出现如下显示,集群搭建成功:
	Cluster status of node rabbit@mq3 ...
	[{nodes,[{disc,[rabbit@mq1,rabbit@mq2,rabbit@mq3]}]},
	{running_nodes,[rabbit@mq1,rabbit@mq2,rabbit@mq3]},
	{cluster_name,<<"rabbit@mq1">>},
	{partitions,[]},
	{alarms,[{rabbit@mq1,[]},{rabbit@mq2,[]},{rabbit@mq3,[]}]}]
#然后在浏览器输入192.168.86.157:15672
192.168.86.157:15672
#登录的账户和密码均为guest 该账户拥有最高的管理员权限
guest
#但是这个时候的集群 还只是主从+集群的方式工作 如果主节点宕机,附属节点无法继续完成主节点的工作,两个附属节点只做了主节点的数据的备份,但是没有对主节点的队列进行备份,所以如果主节点宕机,附属节点还是会有队列的信息,但是并没有保存队列的数据信息。无法自动的进行代替主节点。

#下面将会进行镜像集群的搭建

# 0.策略说明
	rabbitmqctl set_policy [-p <vhost>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern>  <definition>
	-p Vhost: 可选参数,针对指定vhost下的queue进行设置
	Name:     policy的名称
	Pattern: queue的匹配模式(正则表达式)
	Definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
           		ha-mode:指明镜像队列的模式,有效值为 all/exactly/nodes
                        all:表示在集群中所有的节点上进行镜像
                        exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
                        nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定
            	 ha-params:ha-mode模式需要用到的参数
                ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual
                priority:可选参数,policy的优先级
                
                 
# 1.查看当前策略
	rabbitmqctl list_policies

# 2.添加策略
	rabbitmqctl set_policy ha-all '^ys' '{"ha-mode":"all","ha-sync-mode":"automatic"}' 
	说明:策略正则表达式为 “^” 表示所有匹配所有队列名称  ^hello:匹配hello开头队列

# 3.删除策略
	rabbitmqctl clear_policy ha-all

#安装配置Haproxy高可用负载均衡
#解压压缩包


#挂载机器的yum源
mkdir /mnt/cdrom
#挂载命令
mount /dev/sr0 /mnt/cdrom/
#编辑yum配置文件
cat >> /etc/yum.repos.d/CentOS-Media.repo <<EOF
#添加如下内容
[local]
name=local
baseurl=file:///mnt/cdrom
gpgcheck=0
enable=1
EOF
#将默认的yum源配置文件改名  使其失效
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back

yum makecache


#通过yum安装 haproxy
yum -y install haproxy
#查看详细信息
rpm -qi haproxy
#修改配置文件
vim /etc/haproxy/haproxy.cfg

### haproxy 监控页面地址是:http://IP:9188/hastatus
listen admin_stats
    bind *:9100   #监听的地址和端口,默认端口1080
    mode http      #模式
    option httplog
    stats refresh 5s    #页面自动刷新间隔,每隔5s刷新
    stats uri /hastatus  #访问路径,在域名后面添加/stats可以查看haproxy监控状态,默认为/haproxy?stats
    stats realm welcome login\ Haproxy  #提示信息,空格之前加\
    stats auth guest:guest  #登陆用户名和密码
    stats hide-version   #隐藏软件版本号
    stats admin if TRUE   #当通过认证才可管理
 
### rabbitmq 集群配置,转发到
listen rabbitmqcluster
    bind *:1884
    option tcplog
    mode http
    balance roundrobin
    server mq1 192.168.86.157:1884 check inter 2000 rise 2 fall 3 weight 1  #节点一
    server mq2 192.168.86.158:1884 check inter 2000 rise 2 fall 3 weight 1  #节点二
    server mq3 192.168.86.159:1884 check inter 2000 rise 2 fall 3 weight 1
#指定配置文件
haproxy -f /etc/haproxy/haproxy.cfg -c

#检查配置文件格式
haproxy -c -f /etc/haproxy/haproxy.cfg
#启动haproxy
haproxy -f /etc/haproxy/haproxy.cfg
#查看状态
service haproxy status

#添加开机自启动
cat <<eof>>/etc/rc.d/rc.local
haproxy -f /etc/haproxy/haproxy.cfg  
eof

vim /etc/sysctl.conf        #修改内核参数
net.ipv4.ip_nonlocal_bind = 1  #没有就新增此条记录

#访问192.168.86.157:9100/hastatus
#账户 guest 密码 guest

标签:可用,192.168,配置,rabbitmq,rabbitmqctl,RabbitMQ,rabbit,ha,节点
来源: https://blog.csdn.net/qq_35260061/article/details/116240796

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有