我正在寻找 两个 方案,在与Kafka的Spring Integration之上工作:
我的计划是在KafkaTemplate
上使用 AOP ,当任何发送方法调用它时会抛出异常。然后,这将返回错误频道。
我想知道其他( 更简单 & unobtrusive!)测试技术可用于处理不可用的出站通道吗?
ApplicationContext(即XML)解决方案的奖励积分,而非基于注释!
答案 0 :(得分:0)
如果sync
为真,您只会在调用线程上获得异常;否则异步失败可以发送到错误通道(自2.3 / 3.0起)。
见Adding Behavior to Endpoints;特别是ExpressionEvaluatingRequestHandlerAdvice
。
修改强>
您还可以在通道适配器的上游添加中间流网关。
<int:gateway service-interface=OneWay error-channel="ec"
default-request-channel="toKafka" />
public interface OneWay {
void sendIt(Message<?> message);
}
ec
将获得ErrorMessage
个MessagingException
有效负载,其中包含failedMessage
和cause
个属性。