我正在研究两种场景,在与Kafka的Spring集成之上工作:
- 快乐路径 - 通道正确流动并成功将其有效负载传递到出站通道
- 备用情况 - 通道流动正确,但出站通道关闭
我的计划是在KafkaTemplate
上使用AOP,当它被任何发送方法调用时都会引发异常。然后,这将返回到错误通道。
我想知道还有什么其他(更简单和不引人注目的!)测试技术可以用来处理不可用的出站通道?
应用程序上下文(即.XML)解决方案的加分项,而不是基于注释!
-
只有在
sync
为 true 时,才会在调用线程上获得异常;否则异步失败可能会发送到错误通道(自 2.3/3.0 起)。 -
请参阅向端点添加行为;特别是
ExpressionEvaluatingRequestHandlerAdvice
。
编辑
您还可以在通道适配器的上游添加中间流网关。
<int:gateway service-interface=OneWay error-channel="ec"
default-request-channel="toKafka" />
public interface OneWay {
void sendIt(Message<?> message);
}
ec
将获得具有MessagingException
有效负载的ErrorMessage
,该有效负载具有failedMessage
和cause
属性。