rabbitmq集群

集群节点

10.33.146.22 节点1,磁盘节点
10.33.146.23 节点2,内存节点
10.33.146.32 节点3,内存节点

HAProxy做负载

服务器:10.33.146.22
端口:5000
轮询权重:节点1/节点2/节点3=1/5/5

版本

mq:3.8.5 Erlang 20.2

步骤

下载包

rabbitmq:
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-generic-unix-3.8.5.tar.xz
erlang:
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v22.2.8/erlang-22.2.8-1.el7.x86_64.rpm

安装

安装erlang

yum install -y yum install erlang-22.2.8-1.el7.x86_64.rpm

解压rabbitmq

xz -d rabbitmq-server-generic-unix-3.8.5.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.8.5.tar -C /home

cd rabbitmq_server-3.8.5

创建持久化目录

mkdir -p data/store
mkdir -p data/logs

创建配置文件

vim /home/rabbitmq_server-3.8.5/etc/rabbitmq/rabbitmq-env.conf

# 指定节点的名字,默认rabbit@KaTeX parse error: Expected group after '_' at position 30: …NAME=rabbit@MQ1_̲ _# 指定端口,默认5672…{NODENAME}.log 可以用配置修改
LOG_BASE=/home/rabbitmq_server-3.8.5/data/logs

启动Rabbitmq

#启动Rabbit
cd /home/rabbitmq_server-3.8.5/sbin/
./rabbitmq-server -detached # 在后台启动应用
./rabbitmqctl status # 查看节点状态

hosts配置

10.33.146.22 MQ1
10.33.146.23 MQ2
10.33.146.32 MQ3

Erlang cookie同步

cat /root/.erlang.cookie
scp /root/.erlang.cookie 10.33.146.23:/root/.erlang.cookie
scp /root/.erlang.cookie 10.33.146.32:/root/.erlang.cookie
注意:拷贝过去之后需要重启一下mq服务

普通集群

修改集群名

./rabbitmqctl set_cluster_name rabbit@MQ1

查看集群状态

./rabbitmqctl cluster_status
#另外两个节点加入集群 内存节点
./rabbitmqctl stop_app
./rabbitmqctl join_cluster rabbit@MQ1 --ram

注意:
#如果需要修改磁盘节点为内存节点

停止节点

./rabbitmqctl stop_app

与集群通讯,从集群中删除节点

./rabbitmqctl reset

以RAM模式重新加入集群

./rabbitmqctl join_cluster rabbit@MQ1 --ram

启动节点

./rabbitmqctl start_app

镜像集群

#普通集群基础上配置镜像集群
./rabbitmqctl set_policy -p / ha-all “^” ‘{“ha-mode”:“all”}’

启用web管理插件

./rabbitmq-plugins enable rabbitmq_management
#创建用户
./rabbitmqctl add_user admin 123456
#配置用户权限
./rabbitmqctl set_permissions -p / admin “." ".” “.*”
#设置用户角色
./rabbitmqctl set_user_tags admin administrator

HAProxy负载均衡

tar zxvf haproxy-1.7.8.tar.gz
cd haproxy-1.7.8/
make TARGET=generic

vim haproxy.cfg

global #日志输出配置,所有日志都记录在本机,通过local0输出
_ log 127.0.0.1 local3_
_ #最大连接数_
_ maxconn 10240_
_ #以守护进程方式运行_
_ daemon_

defaults
_ #应用全局的日志配置_
_ log global_
_ mode http_
_ #超时配置_
_ timeout connect 5000_
_ timeout client 5000_
_ timeout server 5000_
_ timeout check 2000_

listen http_front #haproxy的客户页面
_ bind 0.0.0.0:8888_
_ mode http_
_ option httplog_
_ stats uri /haproxy_
_ stats auth admin:123456_
_ stats refresh 5s_
_ stats enable_

listen rabbitmq_cluster #负载均衡的名字
_ bind 0.0.0.0:5000 #对外提供的虚拟的端口_
_ option tcplog_
_ mode tcp_
_ #轮询算法_
_ balance roundrobin_
_ timeout client 3h_
_ timeout server 3h_
_ server mq1 10.33.146.22:5672 check inter 5000 rise 2 fall 2 weight 1_
_ server mq2 10.33.146.23:5672 check inter 5000 rise 2 fall 2 weight 5_
_ server mq3 10.33.146.32:5672 check inter 5000 rise 2 fall 2 weight 5_

HAProxy日志配置

#创建日志目录
mkdir /var/log/haproxy
chmod a+x /var/log/haproxy

vim /etc/rsyslog.conf
1 去掉注释:
$ModLoad imudp
$UDPServerRun 514
2 添加:
local0.* /var/log/haproxy/haproxy.log
local3.* /var/log/haproxy/haproxy.log

vim /etc/sysconfig/rsyslog
修改:SYSLOGD_OPTIONS=“-r -m 0 -c 2”

重启服务:
systemctl restart rsyslog
./haproxy -f haproxy.cfg

mq节点故障启动

一 正常关闭节点(如使用./rabbitmqctl stop_app关闭时):
./rabbitmqctl start_app
二 节点通过kill命令挂掉时,使用上面命令无法启动,需要使用:
./rabbitmq-server -detached
三 三个节点全部正常关闭
1>需要首先启动磁盘节点(主节点):./rabbitmqctl start_app
2>依次启动剩余节点
四 三个节点全部异常关闭
1>需要首先启动磁盘节点(主节点):./rabbitmq-server -detached
2>依次启动剩余节点

  • 23
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李晨豪 Lch

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值