首页 > 解决方案 > 内存中的spring boot activemq

问题描述

我使用本指南制作了一个简单的 Spring 启动内存中 ActiveMQ 服务,该服务从休息控制器获取消息,然后将其传递给侦听器。然后侦听器进行一些大约需要 40 秒的处理,但我无法在处理完结果后检索结果。

https://github.com/TechPrimers/inmemory-spring-boot-activemq-example

到目前为止,一切都按预期工作,但我希望能够检索侦听器已处理的结果。

我正在考虑这样做的一种方法是创建另一个休息控制器,该控制器返回侦听器完成的任务的结果。并通过使用关系数据库来管理 ID 和消息。

但是,我宁愿使用内存中的所有内容,而不是处理数据库。

ActiveMQ 和/或 spring 是否有内置的东西来管理它?

标签: springspring-bootactivemq

解决方案


您所描述的内容在我看来就像是企业集成场景中常见的请求-回复模式。

假设工作的结果将很快被消耗,那么我建议您只需将结果放入另一条消息并将该消息发送到“回复”队列。原始消息可以包括一个“相关 ID”,侦听器也可以在回复消息中使用它,因此可以将结果与请求相关联。

如果结果不会很快被消耗,那么数据库可能会更好,因为消息代理不像数据库那样设计为数据存储库。此外,如果你走那条路,可能会有内存中的嵌入式数据库对你有用。


推荐阅读