Spring Integration“内部”​​消息传递如何工作?

时间:2016-08-05 16:17:59

标签: spring-integration

也许是一个愚蠢的问题,但继续阅读SI“基于Spring的应用程序中的轻量级消息传递”。我想知道(如果)SI如何在内部使用消息传递。当我运行SI(引导)应用程序(一个不需要AMPQ ...又称'消息'支持)时,我不必运行Rabbit服务器。但是,从我收集的内容来看,SI在内部使用消息传递。这是如何完成的?我似乎找不到任何解释这个&需要什么基础设施来实现这一目标。谢谢!

2 个答案:

答案 0 :(得分:0)

消息只是在组件之间传递的Java对象(o.s.messaging.Message)。除非您需要持久性,否则不需要外部代理。

我建议你阅读Mark Fisher的书(Spring Integration in Action)和/或reference manual

答案 1 :(得分:0)

spring集成内部的消息传递是通过channel / queue从一个服务传递到另一个服务的内存中java对象。它提供了一种定义流程和处理顺序的机制,还允许每个服务步骤单独工作。 spring集成队列最终是java.util.Queue接口的实现。 它与商业消息传递工具(如IBM MQ或Active MQ)不同,因为它不提供持久性。这意味着如果您终止jvm或应用程序进程已停止,则Spring队列/通道上的所有消息都将丢失。如果在幂等的过程中这是可接受的,那么很多时候,即当应用程序出现时,我可以从头开始重新启动过程。