【RabbitMQ】集群搭建和镜像模式配置

1.单个mq搭建

一、安装Erlang环境

1、 在安装erlang之前先安装下依赖文件(这一步不要忘掉了, 不然后面./configure的时候要报错):

yum install -y gcc glibc-devel make ncurses-devel openssl openssl-devel xmlto perl
yum install -y unixODBC unixODBC-devel

2、 到erlang官网去下载erlang安装包

wget http://erlang.org/download/otp_src_20.2.tar.gz
放到了/usr/local目录下,执行命令:cd /usr/local
上传完毕后,接下来解压:
tar -zxvf otp_src_20.2.tar.gz
cd otp_src_20.2/

3、 编译与安装

在otp_src_20.2目录下执行:./configure --prefix=/usr/local/erlang
make && make instal

4、 配置环境变量

[root@localhost bin]# vi /etc/profile
在末尾加入这么一行即可:export PATH=$PATH:/usr/local/erlang/bin 
更新配置文件[root@localhost bin]# source /etc/profile

二、安装rabbitmq

1、 下载最新安装包

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_15/rabbitmq-server-generic-unix-3.6.15.tar.xz

解压:
[root@localhost local]# xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz
[root@localhost local]# tar -xvf rabbitmq-server-generic-unix-3.6.15.tar

2、配置rabbitmq的环境变量

[root@localhost local]# vi /etc/profile

在末尾加入以下配置:export PATH=$PATH:/usr/local/rabbitmq_server-3.6.15/sbin

启动:rabbitmq-server -detached

关闭:rabbitmqctl stop

查看状态:rabbitmqctl status

配置rabbitmq网页管理插件

启用插件:[root@localhost rabbitmq_server-3.6.15]# rabbitmq-plugins enable rabbitmq_management

rabbit端口默认为15672

三、使用rabbitmq

开启rabbitmq远程访问:

添加用户: rabbitmqctl add_user tester 123456a?  // tester是用户名, 123456a?是用户密码

添加权限: rabbitmqctl set_permissions -p "/" tester ".*" ".*" ".*"

修改用户角色:rabbitmqctl set_user_tags tester administrator

此时,就可以输入用户名、密码进行登录了

2. MQ集群配置

1、配置hosts文件

3个主机上/etc/hosts新增配置(1,2,3节点)
10.221.2.6 mj_service
10.221.2.8 my_service
10.221.2.4 mj_front

2、将/root/.erlang.cookie 拷贝到其他两台主机,主机间交互通过5672 15672 25672 三个端口,需要提前放开

3、在02 03节点启动后执行以下命令

rabbitmqctl stop_app    //停掉rabbit应用

rabbitmqctl join_cluster --ram rabbit@mj_service //加入到内存节点

rabbitmqctl start_app  //启动rabbit应用

加入集群失败处理:

[root@my_service ~]# rabbitmq-server -detached
Warning: PID file not written; -detached was passed.
[root@my_service ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@my_service
[root@my_service ~]# rabbitmqctl join_cluster --ram rabbit@mj_service
Clustering node rabbit@my_service with rabbit@mj_service
Error: {inconsistent_cluster,"Node rabbit@mj_service thinks it's clustered with node rabbit@my_service, but rabbit@my_service disagrees"}

[root@my_service ~]# rabbitmqctl reset
Resetting node rabbit@my_service
[root@my_service ~]# rabbitmqctl join_cluster --ram rabbit@mj_service
Clustering node rabbit@my_service with rabbit@mj_service

(1)默认rabbitmq启动后是磁盘节点,在这个cluster命令下,mq02和mq03是内存节点,mq01是磁盘节点。
(2)如果要使mq02、mq03都是磁盘节点,去掉–ram参数即可。
(3)如果想要更改节点类型,可以使用命令rabbitmqctl change_cluster_node_type disc(ram),前提是必须停掉rabbit应用

4、集群状态查看

  rabbitmqctl cluster_status

在这里插入图片描述

3.镜像集群配置

在mq01节点的控制台上创建策略
(1)点击admin菜单–>右侧的Policies选项–>左侧最下下边的Add/update a policy。
在这里插入图片描述
Name:策略名称
Pattern:匹配的规则,这里表示匹配a开头的队列,如果是匹配所有的队列,那就是^.
Definition:使用ha-mode模式中的all,也就是同步所有匹配的队列。问号链接帮助文档。

添加如上图的全匹配策略, 此时登陆 mq02 03 就能看到添加的策略
在这里插入图片描述
添加队列,查看同步结果
在这里插入图片描述
破坏性测试
停掉mq01节点,查看02 03 数据是否存在。停掉后结果如下,显示不可用。队列信息变为1
在这里插入图片描述
在这里插入图片描述
启动后状态恢复,但是队列显示为未同步,此时需要手工同步。命令如下

rabbitmqctl sync_queue ‘zyj test’
在这里插入图片描述
参考文档如下:

https://blog.51cto.com/11134648/2155934

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值