将带有 JMS (ActiveMQ) 的 Spring Boot 应用程序迁移到 GCP 的 pub-sub

Posted

技术标签:

【中文标题】将带有 JMS (ActiveMQ) 的 Spring Boot 应用程序迁移到 GCP 的 pub-sub【英文标题】:Migrate a Spring boot application with JMS (ActiveMQ) to GCP's pub-sub 【发布时间】:2020-04-09 23:07:24 【问题描述】:

我们有一个使用标准层模型(控制器、服务、DAO)的 Spring Boot 应用程序。

我们的服务层使用 JMS 事件来产生和使用事件。

我们想考虑从 ActiveMQ 迁移到 Google 的 Pub-Sub(主要是因为与 ActiveMQ 不同,GCP 上有一个托管解决方案)。

    是否可以使用 Pub-Sub 实现队列(例如,生产一次,消费一次,这与具有多个消费者/订阅者的主题不同)? 是否有任何示例显示在 Spring 的 3 层(控制器、服务、DAO)模型中的 Pub-Sub 实现?我们只能找到一个使用 Spring Boot 的简单 Pub-Sub 应用程序。我们有兴趣了解我们使用onMessage(Event e) 方法的服务层需要进行哪些更改。

【问题讨论】:

【参考方案1】:

Google 的 Pub-Sub 不支持为 JMS 队列指定的点对点语义。但是,您可以通过在一个主题的一个订阅上使用多个消费者来近似这些语义。有关详细信息,请参阅this answer。

【讨论】:

以上是关于将带有 JMS (ActiveMQ) 的 Spring Boot 应用程序迁移到 GCP 的 pub-sub的主要内容,如果未能解决你的问题,请参考以下文章

activemq、jms 主题和带有选择器的订阅者

Spring JMS ActiveMQ 跟踪作业状态

ActiveMQ rebalanceClusterClients 不适用于 Spring Boot JMS

ActiveMQ / JMS 消息处理程序测试

ActiveMQ 即时通讯服务 浅析

深入浅出JMS--ActiveMQ简单介绍以及安装