這是我的頻道設置:發佈 - 訂閱錯誤處理策略
- 一個JDBC消息存儲備份隊列
- 隊列連接到發佈 - 訂閱通道
- 輪詢器橋配置在pub-sub頻道上是事務性的
現在,如果在任何一個訂閱者中引發異常,那麼事務回滾並且消息將被重試。該消息再次由所有訂戶處理。如果這在至少是用戶中是一個永久的異常,那麼這個消息不會被其他用戶處理。
這裏最好的異常處理策略是什麼?
我更喜歡對訂閱者進行異常處理,即只有失敗的訂閱者會重試,其他訂閱者纔會處理該消息並繼續前進。
這怎麼能在春季集成中實現?
更多細節在這裏..
如果輪詢由交易和消息在用戶中的至少一個失敗處理,則該消息被回滾到郵件存儲和重試。我還爲errorChannel配置了一個jdbc消息存儲。每次消息處理失敗時,消息都會回滾到原始消息存儲,並且錯誤通道消息存儲每次重試都有一個條目。
如果輪詢器是非事務性的,並且消息在第一個訂閱者處理失敗,則消息將被放入錯誤通道,但第二個訂閱者永遠不會收到消息。
看起來有一些根本性的錯誤。是否與我的配置?