rabbitmq集群
集群优点:
- 避免单节点故障, 提高服务可用性
- 提高服务性能,单机吞吐量有限,集群可以扩展节点,将流量分摊到集群中各个节点,提升rabbitmq吞吐量
rabbitmq集群,在失去一个节点时, 客户端能够重新连接到集群中的其他节点并继续生产或者消费, 提高可用性, 但是集群也不能保证消息不被丢失。
有一点需要注意的是,rabbitmq集群中的节点间的数据其实是不共享的, 因此当rabbitmq集群中的一个节点宕机时候, 该节点上的所有队列中的消息都会丢失,除非该节点做持久化,但是在该节点宕机期间,该节点的消息也不会在其他节点处理并被消费者消费
因为集群在创建队列时,只会在单个节点而不是所有节点创建对垒进程并包含队列的信息,因此只有在队列所属的节点上知道队列的所有信息,其他节点只知道对垒的元数据和指向该队列存在的那个节点的指针
但是对于交换机, 交换机创建时 rabbitmq会将绑定的列表添加到集群中的所有节点上, 这样每个节点的每个信道都可以访问到新的交换机
rabbitmq集群中所有节点都会备份所有元数据信息1. 队列 2. 交换机 3. 绑定关系元数据 4. vhost元数据
集群搭建准备:
- 节点准备
rabbitmq集群至少是需要三个节点, 因此可以参考单节点搭建方法先准备三个节点
并启动服务:
systemctl start rabbitmq-server
- 添加hosts
192.168.137.23 node3
192.168.137.22 node2
19