RabbitMQ 部署及配置详解(集群部署)
RabbitMQ 集群是一个或 多个节点,每个节点共享用户、虚拟主机、 队列、交换、绑定、运行时参数和其他分布式状态。
一、RabbitMQ 集群可以通过多种方式形成:
通过在配置文件中列出群集节点以声明方式
以声明方式使用基于 DNS 的发现
以声明方式使用 AWS (EC2) 实例发现(通过插件)
声明式使用 Kubernetes 发现(通过插件)
以声明方式使用基于 Consul 的发现(通过插件)
声明式地使用基于 etcd 的发现(通过插件)
手动使用 rabbitmqctl
二、集群部署的核心概念:
1、 仲裁队列
仲裁队列是 RabbitMQ 实现持久、 基于Raft共识算法的复制FIFO队列。 它从 RabbitMQ 3.8.0 开始可用。
仲裁队列和流取代了持久镜像队列,即原始队列 复制的队列类型,现已弃用并计划删除。
仲裁队列针对数据安全性为 重中之重。这在动机中有所介绍。 仲裁队列应被视为复制队列类型的默认选项。
与传统镜像队列相比,仲裁队列在行为上也存在重要差异和一些限制, 包括特定于工作负载的,例如,当使用者重复对同一消息重新排队时。
未完待续