0
如果使用任務執行器定義Spring Integration通道,則會使用線程池來處理消息。如果服務激活器或變換器端點組件從此內部接收消息通道,將會實例化一個端點組件池,每個線程一個?如果這不是默認行爲,則需要進行哪些配置才能實現此目的?彈簧集成:用於避免丟失消息的策略
這是兩個重要的原因:
,以便服務激活器/變壓器接收,郵件將不會成爲瓶頸。
爲確保端點組件處理內部通道使用的同一線程中的消息,因此它們是同一事務的一部分。如果是這種情況,並且通道使用JMS持久保存,則消息不會丟失。否則,如果端點在單獨的事務中運行,則一旦消息傳遞到端點組件,如果JVM發生故障,則消息在通道上持續存在的事實將無濟於事。
感謝
下面是一個例子來說明我的問題: – user1052610
這裏是一個例子來澄清我的問題:內部通道是由任務執行者定義的。通過輪詢數據庫的入站通道適配器將消息放置在通道上。變壓器然後從內部通道接收消息。我的理解是內部(執行者)渠道不會成爲任何前面的交易的一部分,但它會開始一個包含變壓器的新交易。在這種情況下,即使通道將消息傳遞給變壓器後出現故障,該消息也不會丟失。它是否正確? – user1052610
爲了澄清上述情況,當我說消息將被保存並且不會丟失時,我指的是一個由jms支持的執行器通道( ) –
user1052610