RabbitMQ集群搭建
下载安装包
3、下载rabbitmq-server安装包,也可以不用下载,使用yum
命令进行安装
安装1
# 安装文件(分别按照以下顺序安装)
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
yum install socat -y
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
#常用命令(按照以下顺序执行)
# 添加开机启动 RabbitMQ 服务
chkconfig rabbitmq-server on
# 启动服务
/sbin/service rabbitmq-server start
# 查看服务状态
/sbin/service rabbitmq-server status
# 停止服务(选择执行)
/sbin/service rabbitmq-server stop
# 开启 web 管理插件
rabbitmq-plugins enable rabbitmq_management
# 用默认账号密码(guest)访问地址 http://47.115.185.244:15672/出现权限问题
# 4.添加一个新的用户
# 创建账号
rabbitmqctl add_user admin 123
# 设置用户角色
rabbitmqctl set_user_tags admin administrator
# 设置用户权限
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# 用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限
# 当前用户和角色
rabbitmqctl list_users
# 5.再次利用 admin 用户登录
# 6.重置命令
# 关闭应用的命令为
rabbitmqctl stop_app
# 清除的命令为
rabbitmqctl reset
# 重新启动命令为
rabbitmqctl start_app
安装2
1、将RabbitMQ
以及Erlang
安装包上传到linux系统中 2、安装Erlang
依赖包
rpm -ivh erlang-22.0.7-1.el7.x86_64.rpm
3、安装RabbitMQ
(需要联网)
yum install -y rabbitmq-server-3.7.18-1.el7.noarch.rpm
注意:默认安装完成后配置文件模板在:/usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example目录中,需要将配置文件复制到/etc/rabbitmq/目录中,并修改名称为rabbitmq.config
4、复制配置文件
cp /usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
5、查看配置文件位置
ls /etc/rabbitmq/rabbitmq.config
6、修改配置文件
vim /etc/rabbitmq/rabbitmq.config
将配置文件中 %% {loopback_users, [] },
修改为{loopback_users, []}
7、启动Rabbitmq
中的插件管理
rabbitmq-plugins enable rabbitmq_management
8、启动rabbitmq
的服务
systemctl start rabbitmq-server
systemctl restart rabbitmq-server
systemctl stop rabbitmq-server
9、查看服务状态
systemctl status rabbitmq-server
RabbitMQ的配置
RabbitMQ管理命令行
#1.服务启动相关
systemctl start | restart | stop | status rabbitmq-server
#2.管理命令行用来在不使用web管理界面情况下命令操作RabbitNQ
rabbitmqctl help 可以查看更多命令
#3.插件管理命令行
rabbitmq-plugins enable| list| disable
WEB管理界面介绍
RabbitMQ集群架构
架构图
集群搭建
1、克隆三台机器,分别将主机名和IP映射
vim /etc/hosts分别加入对应的配置:
- 10.15.0.3 mq1
- 10.15.0.4 mq1
- 10.15.0.5 mq1
2、三台机器安装rabbitmq
,并同步cookie
文件,在master
上执行以下命令
scp /var/lib/rabbitmq/.erlang.cookie root@mq2:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie root@mq3:/var/lib/rabbitmq/
3、分别查看cookie
是否一致
cat /var/lib/rabbitmq/.erlang.cookie
4、后台启动所有节点执行以下命令,启动成功后访问管理界面
rabbitmq-server -detached
5、在两台备机器上执行加入集群命令
#关闭
rabbitmqctl stop_app
#加入集群
rabbitmqctl join_cluster rabbit@mq1
#启动服务
rabbitmqctl start_app
6、查看集群状态,在任意节点执行
rabbitmqctl cluster_status
7、如果出现如下显示,则集群搭建成功
Cluster status of node rabbit@mq3...
[{nodes,[{disc,[rabbit@mq1,rabbit@mq2,rabbit@mq3]}]},
高可用集群(镜像集群)
镜像队列机制 就是将队列在三个节点之间设置主从关系,消息会在三个节点之间进行自动同步,且如果其中一个节点不可用,并不会导致消息丢失或服务不可用的情况,提升NO集群的整体高可用性。
镜像集群在普通集群基础上修改
架构图
搭建
1、查看当前策略
rabbitmqctl list_policies
2、添加策略
- 在任意节点上执行一次策略设置就行
rabbitmqctl set_policy ha-all '^hello' '{"ha-mode":"all","ha-sync-mode":"automatic"}'
- 策略正则表达式为 '^': 表示所有匹配所有队列的名称
- ^hello: 匹配hello开头队列
3、删除策略
rabbitmqctl clear_policy ha-all(策略名)
4、策略语法说明
#设置
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的优先级
#清除
rabbitmqctl clear_policy [-p <vhost>] <name>
#查看
rabbitmqctl list_policies [-p <vhost>]