【发布时间】:2021-05-27 13:32:23
【问题描述】:
我有一个休息后端点,它使用 Spring Cloud Stream Kafka Binder 消耗数据并写入 Kafka。现在我们没有任何错误处理。但我们希望通过在数据未写入 Kafka 时添加额外检查来使此端点容错。我们打算在数据未写入 Kafka 时发送异常信息对象。我正在尝试以这种方式使用全局错误来实现这一目标
@ServiceActivator(inputChannel = "errorChannel")
public void handle(final ErrorMessage em) {
logger.error("encountered exception" + em.getOriginalMessage().toString());
throw new RuntimeException(em.getOriginalMessage().toString);
}
我的疑惑有两个:
- 当我们写入 Kafka 的数据失败时,这是处理异常的正确方法吗?
- 是否在数据写入失败时调用此句柄方法,并且此更改是否传播到系统级错误处理。
如果有其他流程请提出建议。我们目前正在探索应用程序级错误处理和全局级错误处理。系统级错误处理暂时不在讨论范围内。提前致谢。
【问题讨论】:
标签: java spring apache-kafka spring-cloud-stream spring-cloud-stream-binder-kafka