弹簧启动在内存中activemq

时间:2018-11-22 22:02:19

标签: spring spring-boot activemq

我使用本指南制作了一个简单的Spring引导内存ActiveMQ服务,该服务从rest控制器获取一条消息,然后将其传递给侦听器。然后,侦听器进行了大约40秒的处理,但是处理后,我无法检索到结果。

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

您所描述的内容在我看来像request-reply pattern,在企业集成方案中很常见。

假设工作的结果将很快消耗掉,那么我建议您将结果简单地放入另一条消息中,然后将该消息发送到“答复”队列中。原始消息可以包含“相关ID”,侦听者也可以在答复消息中使用“相关ID”,以便将结果与请求相关。

如果结果不会很快消耗掉,那么数据库可能会更好,因为消息代理没有像数据库那样被设计为数据存储库。此外,如果您采用这种方式,内存中的嵌入式数据库可能会很适合您。