Rabbitmq主从复制

1> 准备工作我使用的版本:

otp_src_23.1.tar.gz 和 rabbitmq-server-generic-unix-3.8.8.tar.xz

安装节点,RabbitMQ安装(node1,node2,node3),node1为master ,node2和node3为slave

修改3台机器的主机名称:编辑文件 vim /etc/hostname

编辑3台机器,分别加入如下内容, vim /etc/hosts

192.168.110.132  node1
192.168.110.126  node2
192.168.110.121  node3

sudo hostnamectl set-hostname node1 

然后重启:reboot 

2> 安装gcc环境

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel libxml2-utils libxml2 libxslt openssl-devel unixODBC unixODBC-devel unixODBC-bin gtk2 fop gtk2-devel binutils-devel mesa-libGLU-devel yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel libxml2-utils libxml2 libxslt openssl-devel unixODBC unixODBC-devel unixODBC-bin gtk2 fop gtk2-devel binutils-devel mesa-libGLU-devel

3> 安装erlang
下载地址为:http://www.erlang.org/downloads , 我下载的是otp_src_23.1.tar.gz , 下载完上传服务器,开始解压、配置、编译:

tar -xvf otp_src_23.1.tar.gz
cd otp_src_23.1
./configure --prefix=/usr/local/erlang23 --without-javac
make && make install

如果报错./configure: line 4640: wx-config: command not found
configure: WARNING:

执行如下命令(原因自行百度):

yum install wxWidgets-devel
yum install wxBase #for /usr/bin/wx-config-3.0
cd /usr/bin; ln -s wx-config-3.0 wx-config

解决办法:
更新epel第三方软件库
yum install -y epel-release
# 再次执行,就可以安装了
yum install –y wxWidgets-devel
yum install wxBase #for /usr/bin/wx-config-3.0
cd /usr/bin
# 创建软连接
ln -s wx-config-3.0 wx-config

yum install java-devel

如果报 Java compiler disabled by user 错误,则去掉--without-javac , 则重新执行如下命令:

./configure --prefix=/usr/local/erlang23

执行无误后,再执行 : make && make install

4> 配置环境变量

vim /etc/profile
ERL_PATH=/usr/local/erlang23/bin
PATH=$ERL_PATH:$PATH
source /etc/profile   使得文件生效

验证一下,输入 erl ,出现如下字样,表示erlang环境安装成功

[root@iZ8vb6brzzk9zndijwzha5Z /]# erl

Erlang/OTP 23 [erts-11.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]

Eshell V11.1  (abort with ^G)

5> 安装 RabbitMQ

安装 python : yum install python -y

安装 simplejson
yum install xmlto -y
yum install python-simplejson -y

rabbitmq下载地址:http://www.rabbitmq.com/download.html,我下载的是
rabbitmq-server-generic-unix-3.8.8.tar.xz , 上传服务器并解压,并移至/usr/local/rabbitmq

tar -xvf rabbitmq-server-generic-unix-3.8.8.tar.xz
mv rabbitmq_server-3.6.8 /usr/local/rabbitmq

设置环境变量
export PATH=$PATH:/usr/local/erlang23/bin:/usr/local/rabbitmq/sbin
source /etc/profile
启动rabbitmq
./rabbitmq-server &

加上& 就是后台启动,./rabbitmqctl stop 为停止服务

rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问,我的版本是3.7.5
解决办法:新增一个user用于访问,添加用户

[root@iZ8vb6brzzk9zndijwzha5Z sbin]# ./rabbitmqctl add_user chengzl 123456
Adding user "chengzl" ...
[root@iZ8vb6brzzk9zndijwzha5Z sbin]# 

查看用户列表

[root@iZ8vb6brzzk9zndijwzha5Z sbin]# ./rabbitmqctl list_users
Listing users ...
user    tags
chengzl    []
guest    [administrator]


给用户添加管理员权限

[root@iZ8vb6brzzk9zndijwzha5Z sbin]# ./rabbitmqctl set_user_tags chengzl administrator
Setting tags for user "chengzl" to [administrator] ...
[root@iZ8vb6brzzk9zndijwzha5Z sbin]# 
 

启用管理控制台
./rabbitmq-plugins enable rabbitmq_management
重启 rabbitmq,打开浏览器访问:http://node1:15672,用户名chengzl,密码123456。

6> RabbitMQ集群配置

A》停止MQ服务
./rabbitmqctl stop
复制node1节点的/root/.erlang.cookie文件到其他节点,并覆盖
scp /root/.erlang.cookie root@node2:~
scp /root/.erlang.cookie root@node3:~

scp /root/.erlang.cookie root@node2:/root/.erlang.cookie

B》启动集群(3台机器都重启)如下命令
./rabbitmq-server -datached

C》slave 加入集群,对node2和node3分别执行下面操作
./rabbitmqctl stop_app

rabbitmqctl stop会将Elang虚拟机关掉,rabbitmqctl stop_app只会关闭Rabbitmq服务

./rabbitmqctl reset
./rabbitmqctl join_cluster rabbit@node1
./rabbitmqctl start_app

 D》如果需要移除集群节点,执行下面命令:

./rabbitmqctl forget_cluster_node rabbit@node2(具体节点)

E》修改集群名称(任意一个节点操作,默认为master node名称)

./rabbitmqctl set_cluster_name rabbitmq_cluster1

F》查看集群状态(任意一个节点操作)

./rabbitmqctl cluster_status

G》设置镜像队列策略(任意一个节点操作)

./rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态一致。
此时看rabbitmq管控台,如图二个节点,表示集群成功

 


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
RabbitMQ主从是指在RabbitMQ集群中,节点被分为主节点和从节点。主节点是负责接收和处理消息的节点,而从节点是主节点的备份,主节点出现故障时可以接管主节点的工作。主从模式可以提高RabbitMQ的可用性和性能。 要实现RabbitMQ主从,可以按照以下步骤进行操作: 1. 首先,需要搭建RabbitMQ集群。可以参考引用中的文档,其中包含了详细的步骤和代码,可以直接执行。 2. 在搭建集群时,可以使用引用中提供的配置方式,使用address来代替host和port的方式。配置文件中指定了RabbitMQ的地址、用户名、密码和虚拟主机等信息。 3. 创建仲裁队列。可以使用引用中的Java代码来创建仲裁队列,这个队列可以作为主从节点之间复制消息的通道。 4. 使用Spring AMQP连接MQ集群。可以通过配置文件来配置RabbitMQ集群的地址和认证信息,使用Spring AMQP提供的相关功能来连接和操作集群中的节点。 5. 如果需要扩容集群,可以按照相应的步骤进行操作。具体的扩容方式可以根据实际需求和集群的部署方式来确定。 总结起来,要实现RabbitMQ主从,首先需要搭建集群,然后创建仲裁队列,使用Spring AMQP连接集群,并根据需要进行集群的扩容。以上是简要介绍了RabbitMQ主从的实现方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [RabbitMQ集群主从安装.docx](https://download.csdn.net/download/dmm521/12709326)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [RabbitMQ高级特性-RabbitMQ集群介绍](https://blog.csdn.net/Blueeyedboy521/article/details/125384481)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值