文章目录

  • 前言
  • 一、基础安装
  • 1、资源准备
  • 2、mq01安装erlang,安装成功后用erl命令验证
  • 3、mq01安装rabbitmq-server
  • 4、在mq02、mq03服务器上重复以上操作
  • 二、集群搭建
  • 1、在3台服务器上配置/etc/hosts文件
  • 4、修改mq02、mq03服务器的.erlang.cookie文件,使其值都等于mq01的值
  • 5、修改3台服务器的.erlang.cookie文件权限
  • 6、依次启动3台服务器的RabbitMQ服务
  • 7、在mq01服务器执行以下命令
  • 8、在mq02、mq03服务器执行以下命令
  • 9、检查集群状态
  • 三、创建远程访问用户
  • 四、通过使用Haproxy代理rabbitmq集群
  • 1、编辑Haproxy的配置文件haproxy.cfg
  • 2、重启Haproxy,使其新配置生效
  • 3、验证配置是否生效
  • 五、创建镜像规则
  • 1、命令方式创建镜像规则(在任意节点执行即可)



前言

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

springmvc rabbitmq集群 rabbitmq集群搭建_centos


一、基础安装

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"}'