这是我的频道设置:发布 - 订阅错误处理策略
- 一个JDBC消息存储备份队列
- 队列连接到发布 - 订阅通道
- 轮询器桥配置在pub-sub频道上是事务性的
现在,如果在任何一个订阅者中引发异常,那么事务回滚并且消息将被重试。该消息再次由所有订户处理。如果这在至少是用户中是一个永久的异常,那么这个消息不会被其他用户处理。
这里最好的异常处理策略是什么?
我更喜欢对订阅者进行异常处理,即只有失败的订阅者会重试,其他订阅者才会处理该消息并继续前进。
这怎么能在春季集成中实现?
更多细节在这里..
如果轮询由交易和消息在用户中的至少一个失败处理,则该消息被回滚到邮件存储和重试。我还为errorChannel配置了一个jdbc消息存储。每次消息处理失败时,消息都会回滚到原始消息存储,并且错误通道消息存储每次重试都有一个条目。
如果轮询器是非事务性的,并且消息在第一个订阅者处理失败,则消息将被放入错误通道,但第二个订阅者永远不会收到消息。
看起来有一些根本性的错误。是否与我的配置?