在多个数据中心部署基于 JMS 的 Spring Boot 微服务的最佳方法

问题描述

我正在使用 PCF 来部署我的事件驱动微服务。它从队列接收消息,然后处理并将输出发布到另一个主题。该应用程序将部署在多个数据中心以实现高可用性。我目前正在考虑的是将应用程序部署到两个数据中心,它会侦听两个数据中心的消息,然后处理消息。但是最好让队列中最近的数据中心主要侦听消息,然后当这个数据中心关闭时只让第二个数据中心侦听消息。对于第二种方法,我可能需要实现一些断路器来暂停主要和 UP 次要。能否请您提供处理这些应用程序的建议/经验。

解决方法

通常没有简单直接的解决方案,因为两个 DC 都将在主动-主动模式下工作,并且流量可以路由到任何一侧,但您可以执行以下操作:

  1. 在具有不同配置的两个数据中心部署应用程序,以便它始终侦听代码中定义的队列。不是理想的...

  2. 与您的基础设施人员(例如:MQ)交谈,为您提供解决方案 - 从技术上讲,它可以通过 GTM 根据“谁”的要求将您发送到最近的站点