spring 在内存中启动activemq

spring boot in memory activemq

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

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

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

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

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

ActiveMQ and/or spring 是否内置了任何用于管理它的东西?

您所描述的内容对我来说听起来像是 request-reply pattern,这在企业集成场景中很常见。

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

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