我正在使用现场/备用模型构build一个位于两个数据中心的弹性系统。 系统需要一个消息队列来传递消息供系统后端处理。 我现在的devise要求将消息队列(和交换等)作为一个虚拟队列在两个数据中心之间共享。 这样,可以通过closures站点A中的队列消费者并在站点B中启动它们来实现故障转移 – 消费者只需订阅其本地代理并绑定到单个全局交换并开始接收在那里发送的消息,包括那些在故障转移发生时排队。
我过去曾经使用过RabbitMQ,并且知道它可以进行群集,并且群集不适合广域网连接 – 这是非常不能容忍丢包/networking分区的。 我已经阅读了rMQ联邦插件,这似乎意味着两个联邦经纪人可以允许他们的交易所被相互连接的客户绑定。
我不确定是否可以使用它来实现我所需要的,似乎我需要每个DC代理来定义一个交换,联合两个代理,然后每个站点上的客户需要绑定到两个由本地经纪商托pipe的交易所以及托pipe在远程经纪商的交易所。 每个交易所对某个特定的经纪商而言仍然是本地的。 我理解正确吗?
第二个问题 – 大概联邦插件与单独的rMQ集群一起工作? 如果我在A地点有一个rMQ经纪人集群,B地点有类似的集群,我可以把他们联合起来吗?