精通RabbitMQ的单节点和集群安装
使用 Docker 单节点安装
官方提供了一个Docker
镜像, 直接执行下面命令即可.
1 | mkdir -p /opt/rabbitmq/config && touch /opt/rabbitmq/config/rabbitmq.config |
rabbitmq:3-management
镜像整合了控制台插件, 访问http://虚拟机IP:15672
就可以看到控制台了.
集群安装
HAProxy 实现主备集群(Warren模式)
当主节点宕机的时候, HAProxy
能够将备节点升级为主节点, 继续提供服务.
本质上还是HAProxy
下的一个节点在提供服务, 所以一般在并发和数据量不高的情况下使用.
![Warren模式](https://yuml.me/diagram/nofunky;dir:UD/class/[HAProxy]->[RabbitMQ master],[HAProxy]->[RabbitMQ backup])
HAProxy
是免费开源的高可用解决方案, 可以将请求分散到多个服务器上, 为基于TCP
和HTTP
的应用程序提供负载均衡和代理功能.
我们先创建一个简单的HAProxy
配置文件haproxy.cfg
1 | listen rabbitmq_cluster |
这里用Docker Compose
搭建一套一主一备的集群
1 | version: "3" |
然后启动一下, 就可以在本地搭建好一个Warren
模式的主备集群了. 为了简单, 这里是在单机用Docker
部署的.
如果不用Docker
部署也差不多, 最主要的就是HAProxy
的配置
1 | 1. 创建配置文件 |
Shovel模式
Shovel
是RabbitMQ
的一个插件, 本质上就是一个消费者, 消费当前节点的某个队列里的消息, 然后生产消息发送到目标节点的Exchange
上, 使用confirm
机制保证消息的可靠性投递.
这里先创建一个简单的Docker
镜像, 官方并没有提供开启了Shovel
的RabbitMQ
镜像.
1 | FROM rabbitmq:3.7-management |
Shovel
分为静态配置和动态配置
静态Shovels |
动态Shovels |
---|---|
在配置文件中设置 | 在命令行中设置 |
修改后要重启 | 修改后不需要重启 |
具体部署参阅官方文档
镜像集群(Mirror模式)
1 | https://github.com/pardahlman/docker-rabbitmq-cluster |