软件:

        虚拟机3台

        node02:ip 192.168.203.51

        node03:ip 192.168.203.52

        node04:ip 192.168.203.53

        CentOS7

        RabbitMQ v3.9.10

        erlang v24.1.6

        Haproxy

RabbitMQ安装

 node03、node04分别安装RabbitMQ

1、新建下载文件夹

# mkdir soft
# cd soft

2、下载 erland和rabbitMQ安装包

# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.10/rabbitmq-server-3.9.10-1.el7.noarch.rpm
# wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_24.1.6-1~centos~7_amd64.rpm

3、安装erlang

# rpm -ivh esl-erlang_24.1.6-1~centos~7_amd64.rpm --nodeps

4、安装rabbitMQ

# rpm -ivh rabbitmq-server-3.9.10-1.el7.noarch.rpm --nodeps

5、开启web界面管理插件

# rabbitmq-plugins enable rabbitmq_management

6、防火墙设置

# firewall-cmd --zone=public --add-port=5672/tcp --permanent //rabbitMQ端口
# firewall-cmd --zone=public --add-port=15672/tcp --permanent //web界面管理访问端口
​
#firewall-cmd --reload

7、设置开机自启动

# systemctl enable rabbitmq-server

8、重启虚拟机

9、查看MQ运行状态

# systemctl status rabbitmq-server.service

10、命令

服务
# rabbitmq-server //前台启动
# rabbitmq-server -detached //后台启动服务
# rabbitmqctl stop //停止
应用
# rabbitmqctl start_app //启用
# rabbitmqctl stop_app //停止
​
//guest用户默认不支持远程访问,这里创建一个新角色
​
# rabbitmqctl add_user admin admin //创建用户名为admin,密码为admin的用户
# rabbitmqctl set_user_tags admin administrator //用户有4种角色:administrator 、 monitoring 、policymaker 、management,这里设置用户角色为最高级administrator
#rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'//设置admin权限,分别是 配置、读、写权限

11、访问MQ界面管理

http://虚拟机ip:15672/

 

集群

本例搭建工作中最常用的镜像集群

1、修改node03 node04 hostname

//node3
# vi /etc/hostname  //修改为node03
//node4
# vi /etc/hostname  //修改为node04

2、分别修改2台虚拟机host文件

# vi /etc/hosts
添加
192.168.203.53 node04
192.168.203.52 node03

3、复制erlang cookie文件

//node03复制到node04
//erlang cookie是erlang分布式的token文件,集群内相同的.erlang.cookie文件才允许彼此通信
​
# scp /var/lib/rabbitmq/.erlang.cookie 192.168.203.53:/var/lib/rabbitmq/

4、分别设置.erlang.cookie文件权限为拥有者可使用权限 400

# chmod 400 /var/lib/rabbitmq/.erlang.cookie

5、防火墙设置 增加2个端口

# firewall-cmd --zone=public --add-port=4369/tcp --permanent //erlang主机发现端口
​
# firewall-cmd --zone=public --add-port=25672/tcp --permanent //erlang消息发送端口
​
# firewall-cmd --reload

6、重启node03、node04虚拟机

7、配置集群

将node04加入到node03集群中复制

//node03上查看当前 cluster name
# rabbitmqctl cluster_status //node03的cluster name为 rabbit@node03,在下面第三步join_cluster填上
# rabbitmqctl stop_app
# rabbitmqctl join_cluster rabbit@node03
# rabbitmqctl start_app

8、访问web界面管理查看节点是否已加入

9、分别在node03和node04上创建测试queue,自动同步到集群中的所有机器

 

集群负载均衡

本例使用Haproxy做MQ集群的负载均衡

1、node02上安装Haproxy

# yum install haproxy

2、修改配置文件

# vi /etc/haproxy/haproxy.cfg 

//添加
#对MQ集群进行监听
listen rabbitmq_cluster
    bind 0.0.0.0:5672   //通过5672对node03、node04进行映射
    option tcplog       //记录tcp连接的状态和时间
    mode tcp            //对TCP协议转发
    option  clitcpka    //长连接模式
    timeout connect 1s  //haproxy与mq建立连接的超时时间
    timeout client  10s //客户端与haproxy最大空闲时间
    timeout server  10s //服务器与haproxy最大空闲时间
    balance roundrobin  //负载均衡策略(轮询)
    server node1 192.168.203.52:5672 check inter 5s rise 2 fall 3  //每5秒发送一次心跳包,如连续两次有响应则代表状态良好,如连续三次没有响应,则视为服务故障,该节点将被剔除
    server node2 192.168.203.53:5672 check inter 5s rise 2 fall 3
​
#开启haproxy监控服务  
listen http_front
    bind 0.0.0.0:3010        //端口
    stats refresh 30s        //统计页面自动刷新时间
    stats uri /haproxy       //页面url
    stats auth admin:admin   //用户名和密码

3、防火墙开启监控页面端口

# firewall-cmd --zone=public --add-port=3010/tcp --permanent
# firewall-cmd --reload

4、根据配置文件启动

# haproxy -f /etc/haproxy/haproxy.cfg

5、访问监控页面

http://haproxy安装机器ip:3010/haproxy

 

安装配置完成

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐