spring-kafka - 反序列化过程中如何使用ErrorHandlingDeserializer2处理异常
问题描述
我正在使用 spring-kafka - 2.2.7.RELEASE 并试图了解如何配置 ErrorHandlingDeserializer2 以在反序列化期间处理异常并记录/发送 DLT。我正在根据以下文档 https://docs.spring.io/spring-kafka/docs/2.2.0.RELEASE/reference/html/_reference.html#error-handling-deserializer设置我的消费者配置。
这里我的问题是,我们如何获取反序列化过程中失败的异常和消费者记录?
解决方案
考虑升级到 Spring for Apache Kafka 2.3.1
。
这是一个文档如何满足您的要求:https ://docs.spring.io/spring-kafka/docs/2.3.0.RELEASE/reference/html/#dead-letters
从 2.3 版本开始,当与 an 一起使用时
ErrorHandlingDeserializer2
,发布者(读作DeadLetterPublishingRecoverer
)会将value()
死信生产者记录中的记录恢复为未能反序列化的原始值。以前,value()
为 null 并且用户代码必须DeserializationException
从消息头中解码 。此外,您可以向KafkaTemplate
发布者提供多个 s;这可能是需要的,例如,如果您想发布byte[]
from aDeserializationException
以及使用与成功反序列化的记录不同的序列化程序的值。下面是一个KafkaTemplate
使用 String 和 byte[] 序列化程序的 s 配置发布者的示例:
所以,我相信这个文档甚至为您提供了如何在版本中进行的线索2.2.x
。
顺便说一句,我们总是建议至少升级到这一代的最新版本。目前那个是2.2.10
: https ://spring.io/projects/spring-kafka#learn
推荐阅读
- javascript - 如何让 UI-Router 打开一个选项卡
- sql - 字符串的 FIND_IN_SET 示例
- python - 我想用“%”符号显示我的 EXCEL 数据。我怎样才能通过使用 python 来做到这一点
- azure - 无法在 VSCode 中调试 Azure Functions 核心工具
- c++ - 使用结构作为函数参数的函数重载
- android - 如何配置改造以转换成功/错误响应
- android - windowSoftInputMode="adjustResize|stateHidden" 键盘覆盖 Editexts 错误
- javascript - 在某些浏览器中发出范围请求
- python - 当某些值为空字符串时,连接字符串系列
- fingerprint - 如何使用 NBIS 软件比较指纹图像