我使用本指南制作了一个简单的 Spring 启动内存 ActiveMQ 服务,该服务从其余控制器获取消息,然后将其传递给侦听器。然后侦听器进行一些处理,大约需要 40 秒,但我无法在处理后检索结果。
https://github.com/TechPrimers/inmemory-spring-boot-activemq-example
到目前为止,一切都按预期工作,但我希望能够检索侦听器处理的结果。
我正在考虑这样做的一种方法是创建另一个休息控制器,该控制器返回侦听器完成的任务的结果。并通过使用关系数据库来管理 ID 和消息。
但是我宁愿使用内存中的所有内容而不是处理数据库。
ActiveMQ 和/或 spring 是否有内置的东西来管理它?
您所描述的在我看来就像是企业集成场景中常见的请求-回复模式。
假设工作的结果将很快被消耗,那么我建议您只需将结果放入另一条消息并将该消息发送到“回复”队列。原始消息可以包括一个“相关 ID”,侦听器也可以在回复消息中使用它,因此可以将结果与请求相关联。
如果结果不会很快被消耗掉,那么数据库可能会更好,因为消息代理不像数据库那样被设计成数据存储库。此外,如果您采用这种方式,那么内存中的嵌入式数据库可能对您很有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句