rabbitmq介绍
rabbitmq: 是一个消息中间件,主要提供消息的接受和发送,实现各微服务之间的消息 异步
一般以集群方式部署
rabbitmq是依据erlang的分布式特性来实现分布式集群
部署rabbitmq分布式集群时要先安装erlang, 并把其中-个服务的cookie复制到另外的 节点
rabbitmq集群中,各个rabbitmq为对等节点,即每个节点均提供给客户端连接,进行 消息的接收和发送。节点分为内存节点和磁盘节点,一般的,均应建立为磁盘节点,为 了防止机器重启后的消息消失
Rabbitmq的cluster集群模式一般分为两种
普通模式
镜像模式
普通模式下 以两个节点(rabbit01、rabbit02) 为例
消息实体只存在于其中一个节点rabbit01 (或者rabbit02)
rabbit01和rabbit02两个节点仅有相同的元数据,即队列的结构
consumer应尽量连接每一个节点,从中取消息(否则无论consumer连rabbit01或rabbit02, 出口总在rabbit01,会产生瓶颈)
镜像模式
消息队列通过rabbitmq HA镜像队列进行消息队列实体复制
将需要消费的队列变为镜像队列,存在于多个节点,以实现RabbitMQ的HA高可用性
消息实体会主动在镜像节点之间实现同步
缺点就是,集群内部的同步通讯会占用大量的网络带宽
环境要求
多个节点需要在同一个局域网内
需要有相同的erlang cookie 否则不能正常通信
(cookie内容一致性 可采用scp的方式进行拷贝复制)
环境介绍
node1 192.168.12.10
node2 192.168.12.11
node3 192.168.12.12
三台机子的基础配置
RabbitNode1固定IP配置
RabbitNode2固定IP配置 拷贝压缩包文件
RabbitNode3固定IP配置 拷贝压缩包文件