java - 使用 Spring Cloud Stream Kafka Binder 时 Kafka Producer 中的错误处理

标签 java spring apache-kafka spring-cloud-stream spring-cloud-stream-binder-kafka

我有一个休息后端点,它使用 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);
}

我的疑问有两个:

  1. 当我们写入 Kafka 的数据失败时,这是处理异常的正确方法吗?
  2. 每当数据写入失败时,是否会调用此句柄方法,并且此更改是否会传播到系统级错误处理。

如果还有其他流程,请提出建议。我们目前正在探索应用程序级错误处理和全局级错误处理。系统级错误处理目前暂不考虑。提前致谢。

最佳答案

关于java - 使用 Spring Cloud Stream Kafka Binder 时 Kafka Producer 中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67723256/

相关文章:

java - 使用运算符 "length"无法在类 "java.lang.String"的对象中找到 "."的值

java - 没有 Spring Boot 的 Spring Data JPA

java - ViewResolver Spring 不工作

java - GlobalKTable - StreamsException : Encountered a topic-partition not associated with any global state store

node.js - 发送到当前已关闭的 NodeRed 输出 Node 的数据会发生什么情况?

elasticsearch - 对于基于 Docker 容器的实现,在同一个容器内运行一对 Kafka 服务器和 Zookeeper 服务器是否有意义?

java - Jersey:显示对资源可能执行的操作

java - 不兼容的类型 Android 允许权限?

java - JRuby 准备好投入生产了吗?

java - EhCache - 不使用 spring 数据进行缓存