RabbitMQ镜像集群搭建

RabbitMQ镜像集群搭建

消息队列: 在消息的传输过程中保存消息的容器

MQ角色
Broker:即消息队列服务器实体
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
producer:消息生产者,就是投递消息的程序。
consumer:消息消费者,就是接受消息的程序。
channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。


配置节点hosts解析

[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.101 rabbitmq1
192.168.10.102 rabbitmq2
192.168.10.103 rabbitmq3
修改三台集群节点主机名

[root@localhost ~]# hostnamectl set-hostname rabbitmq1

[root@localhost ~]# hostnamectl set-hostname rabbitmq2

[root@localhost ~]# hostnamectl set-hostname rabbitmq3


安装rabbitmq依赖环境elang

  [root@rabbitmq1 ~]#  wget https://github.com/rabbitmq/erlang-rpm/releases/download/v21.0.2/erlang-21.0.2-1.el7.centos.x86_64.rpm

 [root@rabbitmq1 ~]#  rpm -ivh erlang-21.0.2-1.el7.centos.x86_64.rpm  

安装RabbitMQ-3.7.7

 [root@rabbitmq1 ~]#  wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.7/rabbitmq-server-3.7.7-1.el7.noarch.rpm

 [root@rabbitmq1 ~]#  yum -y install 	rabbitmq-server-3.7.7-1.el7.noarch.rpm
### 开启用户远程访问

默认情况下,RabbitMQ的默认的`guest`用户只允许本机访问, 如果想让`guest`用户能够远程访问的话,只需要将配置文件中的loopback_users`列表置为空即可,如下:


cp /usr/share/doc/rabbitmq-server-3.7.7/rabbitmq.config.example  /etc/rabbitmq/rabbitmq.config
vim /etc/rabbitmq/rabbitmq.config 

 61     {loopback_users, []}         #删除两个百分号和后边的逗号
安装web插件
[root@rabbitmq1 ~]# rabbitmq-plugins enable rabbitmq_management
http://192.168.10.101:15672/
[root@rabbitmq1 ~]#   systemctl start rabbitmq-server
查看集群状态
[root@rabbitmq1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq1 ...
[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]},
 {running_nodes,[rabbit@rabbitmq3,rabbit@rabbitmq2,rabbit@rabbitmq1]},
 {cluster_name,<<"rabbit@rabbitmq1">>},
 {partitions,[]},
 {alarms,[{rabbit@rabbitmq1,[]}  ## 目前只有自己数据一个集群

以上步骤,配置集群的三台服务器操作都是一致的

将其他节点加入rabbitmq1集群中

因为rabbitmq集群是基于erlang同步的,所以先配置使各个节点 中 .erlang.cookie文件一致

 [root@rabbitmq2 ~]# scp /var/lib/rabbitmq/.erlang.cookie  rabbitmq2:/var/lib/rabbitmq/.erlang.cookie

 [root@rabbitmq3 ~]# scp /var/lib/rabbitmq/.erlang.cookie  rabbitmq3:/var/lib/rabbitmq/.erlang.cookie

以下步骤在RabbitMQ2 和RabbitMQ3 上执行

[root@rabbitmq2 ~]# rabbitmqctl stop_app  #关闭应用  

 [root@rabbitmq2 ~]# rabbitmqctl reset       #清除所有队列

[root@rabbitmq2 ~]#  rabbitmqctl join_cluster --disc rabbit@rabbitmq1  #添加到集群中为磁盘节点   如果要添加为内存节点 则--disc更改为--ram

 [root@rabbitmq2 ~]# rabbitmqctl start_app      ###启动应用
 
 
 
 
 
 [root@rabbitmq3 ~]# rabbitmqctl stop_app  #关闭应用  

 [root@rabbitmq3 ~]# rabbitmqctl reset       #清除所有队列

[root@rabbitmq3 ~]#  rabbitmqctl join_cluster --disc rabbit@rabbitmq1  #添加到集群中为磁盘节点   如果要添加为内存节点 则--disc更改为--ram

 [root@rabbitmq3 ~]# rabbitmqctl start_app      ###启动应用
 
 
 
 
查看节点RabbitMQ的集群状态    #任意节点查看

[root@rabbitmq1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq1 ...
[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]},
 {running_nodes,[rabbit@rabbitmq3,rabbit@rabbitmq2,rabbit@rabbitmq1]},
 {cluster_name,<<"rabbit@rabbitmq1">>},
 {partitions,[]},
 {alarms,[{rabbit@rabbitmq3,[]},{rabbit@rabbitmq2,[]},{rabbit@rabbitmq1,[]}]}]  ##看到三个节点表示集群搭建成功

登录RabbitMQ的WEB页面 看到三个节点

在这里插入图片描述在这里插入图片描述

前端代理使用HAproxy+keepalive

使用四层TCP模式 不多介绍

listen rabbitmq_cluster
    # 定义监听地址和端口,本机的5672端口
    bind 0.0.0.0:5672
    # 配置 tcp 模式
    mode tcp
    # 简单的轮询
    balance roundrobin
    #rabbitmq集群节点配置 #inter 每隔五秒对mq集群做健康检查,2次正确证明服务器可用,
    #2次失败证明服务器不可用,并且配置主备机制
    server rabbitmq1 192.168.10.101:5672 check inter 5000 rise 2 fall 2
    server rabbitmq2 192.168.10.102:5672 check inter 5000 rise 2 fall 2
    server rabbitmq3 192.168.10.103:5672 check inter 5000 rise 2 fall 2          #可以加backup 为备用模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值