安装erlang环境(需要有epel源的前提下)
rpm -Uvh http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm
下载rabbitmq的rpm安装包
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
导入秘钥
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
yum安装rabbitmq
yum -y install rabbitmq-server-3.6.6-1.el7.noarch.rpm
启动rabbitmq
systemctl start rabbitmq-server
配置文件模板路径
/usr/share/doc/rabbitmq-server-3.6.6/rabbitmq.config.example
rabbitmq_management管理插件使用
启用:
rabbitmq-plugins enable rabbitmq_management
增加一个用户:
rabbitmqctl add_user admin 12345
授权:
rabbitmqctl set_user_tags admin administrator
查看用户:
rabbitmqctl list_users
赋予用户权限:
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
镜像集群keepalived高可用3.6.6
添加hosts解析
192.168.0.221 master
192.168.0.56 slave
安装erlang插件
两台机器都运行
rpm -Uvh http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm
安装mq
两台机器都执行安装
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
yum -y install rabbitmq-server-3.6.6-1.el7.noarch.rpm
测试rabbitmq是否可以正常启动,并查看状态
systemctl start rabbitmq-server
systemctl status rabbitmq-server
systemctl enable rabbitmq-server
修改配置文件
cd /etc/rabbitmq/
cp /usr/share/doc/rabbitmq-server-3.6.6/rabbitmq.config.example ./rabbitmq.config
根据具体需求进行参数修改
安装其他所需插件
cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.6/plugins
wget https://dl.bintray.com/rabbitmq/community-plugins/rabbitmq_delayed_message_exchange-0.0.1.ez
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/tag/3.9.0
设置开机自启动
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
rabbitmq-plugins enable rabbitmq_tracing
查看端口是否正常
netstat -tnlp
添加账户并设置管理员账户
rabbitmqctl add_user user 123456
rabbitmqctl set_user_tags user administrator
以下为集群配置:
RabbitMQ的集群是依赖erlang集群,而erlang集群是通过这个cookie进行通信认证的,因此我们做集群的第一步就是统一cookie。
路径在$HOME中或者在/var/lib/rabbitmq中,文件名称为.erlang.cookie
cat /var/lib/rabbitmq/.erlang.cookie 查看是否统一
scp /var/lib/rabbitmq/.erlang.cookie root@ip:/var/lib/rabbitmq/.erlang.cookie 使两台mq的cookie统一
设置权限为600
chmod 600 /var/lib/rabbitmq/.erlang.cookie
重启从节点
systemctl restart rabbitmq-server
查看集群状态 任意一个节点操作
rabbitmqctl cluster_status
加入集群 从节点执行
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@master
rabbitmqctl start_app
查看集群状态是否正常并打开网页管理页面查看nodes
设置为镜像模式 任意一个节点操作
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
(默认虚拟主机为/)
使用Rabbit镜像功能,需要基于rabbitmq策略来实现,策策是用来控制和修改群集范围的某个vhost队列行为和Exchange行为在cluster中任意节点启用策略,策略会自动同步到集群节点
# rabbitmqctl set_policy -p hrsystem ha-allqueue"^" '{"ha-mode":"all"}'
这行命令在vhost名称为hrsystem创建了一个策略,策略名称为ha-allqueue,策略模式为 all 即复制到所有节点,包含新增节点,
策略正则表达式为 “^” 表示所有匹配所有队列名称。
例如rabbitmqctl set_policy -p hrsystem ha-allqueue "^message" '{"ha-mode":"all"}'
注意:"^message" 这个规则要根据自己修改,这个是指同步"message"开头的队列名称,我们配置时使用的应用于所有队列,所以表达式为"^"
查看策略 任意节点执行
[root@master ~]# rabbitmqctl list_policies
Listing policies …
/ ha-all all ^ {“ha-mode”:“all”} 0
配置keepalived
安装
yum -y install keepalived ipvsadm nmap
配置文件
主
global_defs {
router_id LVS_01
}
vrrp_script chk_rabbitmq {
script "/etc/keepalived/scripts/rabbitmq_check.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.4.7.103/24 dev ens33
}
track_script {
chk_rabbitmq
}
}
从:
global_defs {
router_id LVS_02
}
vrrp_script chk_rabbitmq {
script "/etc/keepalived/scripts/rabbitmq_check.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.4.7.103/24 dev ens33
}
track_script {
chk_rabbitmq
}
}
检测脚本:
#!/bin/bash
k1=`/usr/bin/nmap -sS 127.0.0.1 -p 5672 | grep 5672 | awk '{printf $2}'`
if [ "$k1" != "open" ]; then
systemctl restart rabbitmq-server
fi
Q1=`/usr/bin/nmap -sS 127.0.0.1 -p 5672 | grep 5672 | awk '{printf $2}'`
if [ "$Q1" != "open" ]; then
systemctl stop keepalived
fi
启动keepalived查看是否启动
最后
以上就是愤怒母鸡最近收集整理的关于rabbitmq-server单机搭建+镜像集群keepalived高可用的全部内容,更多相关rabbitmq-server单机搭建+镜像集群keepalived高可用内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复