0
如果使用任务执行器定义Spring Integration通道,则会使用线程池来处理消息。如果服务激活器或变换器端点组件从此内部接收消息通道,将会实例化一个端点组件池,每个线程一个?如果这不是默认行为,则需要进行哪些配置才能实现此目的?弹簧集成:用于避免丢失消息的策略
这是两个重要的原因:
,以便服务激活器/变压器接收,邮件将不会成为瓶颈。
为确保端点组件处理内部通道使用的同一线程中的消息,因此它们是同一事务的一部分。如果是这种情况,并且通道使用JMS持久保存,则消息不会丢失。否则,如果端点在单独的事务中运行,则一旦消息传递到端点组件,如果JVM发生故障,则消息在通道上持续存在的事实将无济于事。
感谢
下面是一个例子来说明我的问题: – user1052610
这里是一个例子来澄清我的问题:内部通道是由任务执行者定义的。通过轮询数据库的入站通道适配器将消息放置在通道上。变压器然后从内部通道接收消息。我的理解是内部(执行者)渠道不会成为任何前面的交易的一部分,但它会开始一个包含变压器的新交易。在这种情况下,即使通道将消息传递给变压器后出现故障,该消息也不会丢失。它是否正确? – user1052610
为了澄清上述情况,当我说消息将被保存并且不会丢失时,我指的是一个由jms支持的执行器通道( ) –
user1052610