Kafka/Spring 集成的故障转移集成测试



我正在研究两种场景,在与Kafka的Spring集成之上工作:

  1. 快乐路径 - 通道正确流动并成功将其有效负载传递到出站通道
  2. 备用情况 - 通道流动正确,但出站通道关闭

我的计划是在KafkaTemplate上使用AOP,当它被任何发送方法调用时都会引发异常。然后,这将返回到错误通道

我想知道还有什么其他(更简单和不引人注目的!)测试技术可以用来处理不可用的出站通道?

应用程序上下文(即.XML)解决方案的加分项,而不是基于注释!

  1. 只有在 sync 为 true 时,才会在调用线程上获得异常;否则异步失败可能会发送到错误通道(自 2.3/3.0 起)。

  2. 请参阅向端点添加行为;特别是ExpressionEvaluatingRequestHandlerAdvice

编辑

您还可以在通道适配器的上游添加中间流网关。

<int:gateway service-interface=OneWay error-channel="ec"
    default-request-channel="toKafka" />
public interface OneWay {
    void sendIt(Message<?> message);
}

ec将获得具有MessagingException有效负载的ErrorMessage,该有效负载具有failedMessagecause属性。

最新更新