在生产环境下,使用集群来保证高可用性
普通集群、镜像集群、仲裁队列
❒ 普通集群(不支持高可用)
✔ 普通集群,或者叫标准集群(classiccluster),具备下列特征
✔ 会在集群的各个节点间共享部分数据,包括:交换机、队列元信息。不包含队列中的消息。
✔ 当访问集群某节点时,如果队列不在该节点,会从数据所在节点传递到当前节点并返回
✔ 队列所在节点容机,队列中的消息就会丢失
❒ 镜像集群
✔ 镜像集群:本质是主从模式,具备下面的特征
✔ 交换机、队列、队列中的消息会在各个mq的镜像节点之间同步备份。
✔ 创建队列的节点被称为该队列的主节点,备份到的其它节点叫做该队列的镜像节点。
✔ 所有操作都是主节点完成,然后同步给镜像节点
✔ 主宕机后,镜像节点会替代成新的主
❒ 仲裁队列
✔ 仲裁队列:仲裁队列是3.8版本以后才有的新功能,用来替代镜像队列,具备下列特征与镜像队列一样,都是主从模式,支持主从数据同步
✔ 使用非常简单,没有复杂的配置
✔ 主从同步基于Raft协议,强一致
@Bean
public Queue quorumQueue(){
return QueueBuilder
.durable("quorum.queue") //持久化
.quorum() //仲裁队列
.build();
}