rabbitmq主备模式部署

192.168.15.240 主机名rabbitmq240
192.168.15.241 主机名rabbitmq241
vip: 192.168.15.1
vip: 192.168.15.2

1.两台机器安装
yum -y install erlang.x86_64
ln -s /usr/local/erlang/bin/erl /usr/bin/erl
ln -s /usr/local/erlang/bin/epmd /usr/bin/epmd
yum -y install rabbitmq.x86_64
2.配置主机名(两台配置一样)
echo "10.237.102.127 pscpowtsitweb04 rabbit127" >> /etc/hosts
echo "10.237.102.128 pscpowtsitweb05 rabbit128" >> /etc/hosts

echo "10.60.15.107 njgx-b-rabbitmq-15-107 njgx-b-rabbitmq-15-107.pscp-owt-rmq.lin.idc.pplive.cn" >> /etc/hosts
echo "10.60.15.108 njgx-b-rabbitmq-15-108 njgx-b-rabbitmq-15-108.pscp-owt-rmq.lin.idc.pplive.cn" >> /etc/hosts
3.master 192.168.15.240操作
/usr/local/rabbitmq/sbin/rabbitmq-server -detached
生成文件:~/.erlang.cookie
        cat ~/.erlang.cookie
在master上启动代理:python -m SimpleHTTPServer 7890,备机上执行:wget http://192.168.15.240:7890/.erlang.cookie获取文件
确保master和slave该文件一致,否则加不进集群。
权限也要一致
chmod 400 .erlang.cookie
4.在slave上 192.168.15.241
/usr/local/rabbitmq/sbin/rabbitmq-server -detached
/usr/local/rabbitmq/sbin/rabbitmqctl stop_app
/usr/local/rabbitmq/sbin/rabbitmqctl join_cluster rabbit@pscpowtsitweb04
/usr/local/rabbitmq/sbin/rabbitmqctl start_app

常用命令:
关闭启动mq
/etc/init.d/rabbitmq-server stop
/etc/init.d/rabbitmq-server start
检测集群状态
/usr/local/rabbitmq/sbin/rabbitmqctl cluster_status

查看用户列表
/usr/local/rabbitmq/sbin/rabbitmqctl list_users
修改密码
/usr/local/rabbitmq/sbin/rabbitmqctl change_password guest asiatest
删除节点
/usr/local/rabbitmq/sbin/rabbitmqctl forget_cluster_node  rabbit@rabbitmq241
-----------------------------------------------------------------------------------------------------------
vip配置如下:
/etc/rc.d/init.d/realserver

#!/bin/bash
# chkconfig: - 95 50
# description: Config realserver lo and apply noarp 

VIPS="192.168.15.1 192.168.15.1"
OLD_VIPS=`/sbin/ip a show dev lo |grep 'global'|awk '{print $4}'`

. /etc/rc.d/init.d/functions
start() {
      for VIP in $VIPS 
      do
      ifconfig lo:`echo $VIP|awk -F. '{print $3"-"$4}'` $VIP netmask 255.255.255.255 broadcast $VIP
      /sbin/route add -host $VIP dev lo:`echo $VIP|awk -F. '{print $3"-"$4}'`
      done
      echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
      echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
      echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
      echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
      echo "RealServer Start:                          [ OK ]"
}

stop() {
      for VIP  in $OLD_VIPS
      do
      ifconfig lo:`echo $VIP|awk -F. '{print $3"-"$4}'` down
      route del  $VIP  >/dev/null 2>&1
      done
      echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
      echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
      echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
      echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
      echo "RealServer Stoped:                         [ OK ]"
}


case "$1" in
    start)
         start
         ;;
    stop)
         stop
         ;;
    restart)
         stop
         start
         ;;
*)
      echo "Usage: $0 {start|stop|restart}"
      exit 1
esac

exit 0

执行sh checkvip.sh

realserver_num=$(/sbin/ip a |grep inet |grep lo: |grep brd |wc -l)

if [ ! -f /etc/init.d/realserver ];then
        exit
fi


if [ ${realserver_num} -lt 3 ];then
        /etc/init.d/realserver restart
fi

设置定时任务

*/5 * * * * sh /home/scottbing/tools/checkvip.sh

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部署 RabbitMQ 主备节点架构,需要按照以下步骤进行操作: 1. 安装 RabbitMQ:在主节点和备节点上分别安装 RabbitMQ,并确保它们都属于同一个 RabbitMQ 集群。 2. 确认主备节点角色:在主节点和备节点上分别运行以下命令,以确认它们的角色: ```bash rabbitmqctl status ``` 主节点的输出应该包含 `running_nodes` 中的所有节点,而备节点的输出应该只包含自己。 3. 设置主备节点:在备节点上运行以下命令,以将其设置为主节点的备份节点: ```bash rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' ``` 该命令将创建一个名为 ha-all 的策略,并将其应用于所有队列。该策略指定了所有队列都应该使用主备节点架构,并且备节点应该复制主节点的所有数据。 4. 启用镜像队列:在所有节点上运行以下命令,以启用镜像队列: ```bash rabbitmq-plugins enable rabbitmq_management rabbitmq_peer_discovery_aws ``` 此命令启用 RabbitMQ 管理插件和 AWS 对等发现插件。这些插件允许您在 RabbitMQ 管理界面上查看节点和队列的状态,并自动发现节点。 5. 配置主备节点:在主节点和备节点上分别编辑 `/etc/rabbitmq/rabbitmq.config` 文件,以设置它们的节点名称和 IP 地址。例如,对于主节点,文件内容应类似于: ```erlang [ {rabbit, [ {cluster_nodes, {['rabbit@master', 'rabbit@slave'], disc}}, {default_user, <<"guest">>}, {default_pass, <<"guest">>}, {tcp_listeners, [{"0.0.0.0", 5672}]}, {log_levels, [{connection, info}]}, {loopback_users, []} ]}, {rabbitmq_management, [ {listener, [ {port, 15672}, {ip, "0.0.0.0"} ]} ]} ]. ``` 对于备节点,文件内容应类似于: ```erlang [ {rabbit, [ {cluster_nodes, {['rabbit@master', 'rabbit@slave'], disc}}, {default_user, <<"guest">>}, {default_pass, <<"guest">>}, {tcp_listeners, [{"0.0.0.0", 5672}]}, {log_levels, [{connection, info}]}, {loopback_users, []} ]}, {rabbitmq_management, [ {listener, [ {port, 15672}, {ip, "0.0.0.0"} ]} ]} ]. ``` 其中,`cluster_nodes` 指定了集群中的所有节点,`default_user` 和 `default_pass` 分别指定了默认的用户名和密码,`tcp_listeners` 指定了 RabbitMQ 监听的 IP 地址和端口,`log_levels` 指定了日志输出级别,`loopback_users` 指定了可以通过本地连接访问 RabbitMQ 的用户。 6. 启动节点:在所有节点上运行以下命令,以启动 RabbitMQ 节点: ```bash rabbitmq-server -detached ``` 此命令将 RabbitMQ 作为守护进程启动。 7. 验证设置:在任一节点上运行以下命令,以验证主备节点架构是否正确设置: ```bash rabbitmqctl cluster_status ``` 此命令应该返回一个 JSON 格式的输出,其中包含所有节点的状态信息。如果您看到输出中包含 `mirrored` 的字样,则说明主备节点架构已经成功启用。 以上就是 RabbitMQ 主备节点架构部署的步骤,希望对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值