CentOS 7搭建RabbitMQ集群


前言

在CentOS 7.3下搭建RabbitMQ集群,在此将操作记录下来,亲测通过。

在这里插入图片描述


一、基础安装

1、资源准备

  • 三台服务器:mq01、mq02、mq03
  • erlang安装包:erlang-19.0.4-1.el7.centos.x86_64.rpm
  • rabbitmq-server安装包:rabbitmq-server-3.6.10-1.el7.noarch.rpm

2、mq01安装erlang,安装成功后用erl命令验证

执行以下命令:

# rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm 
//验证erlang是否安装成功
# erl

3、mq01安装rabbitmq-server

执行以下命令:

//安装socat
# yum install -y socat
//安装rabbitmq-server
# rpm -ivh rabbitmq-server-3.6.10-1.el7.noarch.rpm
//安装WEB管理插件
# rabbitmq-plugins enable rabbitmq_management
//启动rabbitmq服务
# rabbitmq-server -deched 或 systemctl start rabbitmq-server.service
//查看rabbitmq的状态
# rabbimqctl status
//关闭rabbitmq服务
# systemctl stop rabbitmq-server.service

4、在mq02、mq03服务器上重复以上操作

二、集群搭建

接下来主要以mq01为主节点搭建RabbitMQ集群:

1、在3台服务器上配置/etc/hosts文件

# vim /etc/hosts
//编辑内容如下:
100.15.10.12 mq01
100.15.10.13 mq02
100.15.10.14 mq03

4、修改mq02、mq03服务器的.erlang.cookie文件,使其值都等于mq01的值

执行以下命令:

# vim /var/lib/rabbitmq/.erlang.cookie

5、修改3台服务器的.erlang.cookie文件权限

执行以下命令:

# chmod -R 600 /var/lib/rabbitmq/.erlang.cookie

6、依次启动3台服务器的RabbitMQ服务

执行以下命令:

# systemctl start rabbitmq-server.service

7、在mq01服务器执行以下命令

执行以下命令:

 # rabbitmqctl stop_app                   //只关闭rabbitmq服务,不关闭erlang服务
 # rabbitmqctl reset                      
 # rabbitmqctl start_app

8、在mq02、mq03服务器执行以下命令

执行以下命令:

 # rabbitmqctl stop_app                   //只关闭rabbitmq服务,不关闭erlang服务
 # rabbitmqctl reset                      
 # rabbitmqctl join_cluster rabbit@mq01   //如果添加--ram参数,则说明节点为内存节点模式,否则为硬盘节点模式
 # rabbitmqctl start_app

9、检查集群状态

执行以下命令:

 # rabbitmqctl cluster_status

三、创建远程访问用户

执行以下命令:

# rabbitmqctl add_user rabbitmq 123456
# rabbitmqctl set_user_tags rabbitmq administrator
# rabbitmqctl set_permissions -p "/" rabbitmq ".*" ".*" ".*"
//查看新增用户是否成功
# rabbitmqctl list_users

四、通过使用Haproxy代理rabbitmq集群

前面已经搭建了3个节点的RabbitMQ集群:3个 IP:端口,但客户端只需填写一个IP和端口进行连接,因此需要通过Haproxy去代理这3个rabbitmq服务。

1、编辑Haproxy的配置文件haproxy.cfg

执行以下命令:

# vim /etc/haproxy/haproxy.cfg
//添加以下内容:
listen admin
    bind *:9001
    mode http
    stats uri /stats
     
frontend rabbitmq
    mode tcp
    bind *:5672
    timeout client 1h  //HAProxy默认是50秒,如果50秒还没有消息到来,则HAProxy就会断开客户端,因此建议设置较大的超时
    log global
    option tcplog
    option logasap
    default_backend rabbitmq_5672
     
backend rabbitmq_5672
    mode tcp
    balance roundrobin
    timeout server 1h
    server  mq01 mq01:5672
    server  mq02 mq02:5672
    server  mq03 mq03:5672

listen rabbitmq_admin 
    bind  0.0.0.0:15672
    mode http
    timeout server 1h
    balance roundrobin
    server mq01 mq01:15672
    server mq02 mq02:15672
    server mq03 mq03:15672

2、重启Haproxy,使其新配置生效

执行以下命令:

# systemctl restart haproxy.service

3、验证配置是否生效

  • 浏览器访问http://haproxy服务器的ip:9001/stats,查看haproxy的状态
  • 浏览器访问http://haproxy服务器的ip:15672,查看rabbitmq的管理后台
  • 客户端可运用 haproxy服务器的ip:5672 进行连接操作

五、创建镜像规则

1、命令方式创建镜像规则(在任意节点执行即可)

执行以下命令:

# rabbitmqctl set_policy / "" '{"ha-mode":"all"}'
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
rabbitmq是一种高度可靠、可扩展、可插拔的消息代理,用于在分布式系统中传递消息。在实际的生产环境中,为保证高可用性,需要搭建rabbitmq集群。本文将介绍在CentOS 7上搭建rabbitmq集群的步骤。 1. 安装erlang rabbitmq是由erlang语言开发的,因此需要先安装erlang。执行以下命令: ``` sudo yum install epel-release sudo yum install erlang ``` 2. 安装rabbitmq 执行以下命令: ``` sudo yum install rabbitmq-server ``` 3. 配置防火墙 如果你使用的是CentOS 7的默认防火墙firewalld,需要打开5672和15672端口,执行以下命令: ``` sudo firewall-cmd --zone=public --permanent --add-port=5672/tcp sudo firewall-cmd --zone=public --permanent --add-port=15672/tcp sudo firewall-cmd --reload ``` 4. 配置rabbitmq 编辑rabbitmq配置文件,执行以下命令: ``` sudo vi /etc/rabbitmq/rabbitmq-env.conf ``` 添加以下内容: ``` NODE_IP_ADDRESS=your_node_ip_address ``` 其中,your_node_ip_address为节点的IP地址。 5. 启动rabbitmq 执行以下命令: ``` sudo systemctl start rabbitmq-server ``` 6. 设置rabbitmq集群 首先需要停止rabbitmq服务,执行以下命令: ``` sudo systemctl stop rabbitmq-server ``` 然后在rabbitmq配置文件中添加以下内容,执行以下命令: ``` sudo vi /etc/rabbitmq/rabbitmq.config ``` ``` [ {rabbit, [ {cluster_nodes, {['rabbit@node1', 'rabbit@node2', 'rabbit@node3'], disc}} ]} ]. ``` 其中,'rabbit@node1', 'rabbit@node2', 'rabbit@node3'为集群中各节点的名称,disc表示使用磁盘节点。 接下来需要在各个节点上将rabbitmq加入到集群中,执行以下命令: ``` sudo rabbitmqctl stop_app sudo rabbitmqctl join_cluster rabbit@node1 sudo rabbitmqctl start_app ``` 其中,rabbit@node1为集群中的一个节点名称。 最后,启动rabbitmq服务,执行以下命令: ``` sudo systemctl start rabbitmq-server ``` 到此,rabbitmq集群搭建完成。可以通过访问节点IP地址加端口号15672来访问rabbitmq的web管理界面,输入用户名和密码即可登录。在web界面上可以查看rabbitmq节点的状态、队列的状态等信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值