既然如此 Outbound 是被动组件,它只能通过外部调用来实现其目的,这并不奇怪,错误处理应该类似于 try...catch 在Java中我们调用服务方法。
Outbound
try...catch
因此,一种方法是在上游使用错误通道 - Messaging Gateway或Inbound channel Adapter。
另一种方法是使用 ExpressionEvaluatingRequestHandlerAdvice 在里面 request-handler-advice-chain 的 <int-kafka:outbound-channel-adapter> 。
ExpressionEvaluatingRequestHandlerAdvice
request-handler-advice-chain
<int-kafka:outbound-channel-adapter>
另外,请记住你应该使用 async = false 选项以在同一个线程中从Kafka交互中获取所有错误。
async = false