【问题标题】:Best approach for JMS based spring boot microservice deployed in multiple data center部署在多个数据中心的基于 JMS 的 Spring Boot 微服务的最佳方法
【发布时间】:2021-05-05 18:07:11
【问题描述】:

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

【问题讨论】:

    标签: spring-boot microservices cloud-foundry spring-jms event-driven-design


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢 arjain。如果它是主动-被动模式,您能否建议如何做到这一点。我正在使用 Spring JMS 进行开发
    • 用于主动-被动;无论如何,您都需要在其他站点启动应用程序,这样您就可以简单地拥有不同的配置并且它会起作用,您可以对其进行参数化,这将使事情变得容易。但是,如果您想在任何配置(主动-主动或主动-被动)的主队列出现问题时跨站点连接,那么您需要以编程方式管理此问题,并且只有在主队列未按预期响应时才连接到其他站点。 ..
    • 你能告诉我如何在 Spring Boot 中实现这一点。我目前正在使用spring boot的spring jms。因此,当我为队列创建侦听器时,它将开始侦听来自队列的消息。因此,如果我将它部署到两个数据中心,它将在两个数据中心中进行监听。我如何以编程方式控制在某个时间点监听哪个数据中心。
    猜你喜欢
    • 2022-09-28
    • 2021-11-22
    • 1970-01-01
    • 2018-06-17
    • 2015-12-05
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2015-09-17
    相关资源
    最近更新 更多