apache-kafka - Kafka-streams 破坏了消息处理语义
问题描述
我注意到 Kafka 记录有一个 CRC 字段。如果日志文件中的记录损坏(例如,消息中间的一个位被翻转),在以下情况下我希望在流应用程序中看到什么:
- 话题被复制
- 题目不复制
由于我们使用的是 Avro,我可以想象会发生以下情况之一:
- 底层基础设施检测 CRC 错误并从另一个代理获取它
- DeserializationExceptionHandler 启动
- 根据策略,发生其他一些错误并且拓扑崩溃或消息被跳过
解决方案
对于 CRC 错误,当您的 Streams 应用程序尝试反序列化记录时,应该会引发异常。因此,DeserializationExceptionHandler
开始了。
在 Kafka 中,所有读/写都由分区领导者处理,追随者代理仅在后台被动复制数据,不提供来自客户端的任何读/写。
推荐阅读
- android - 如何从自定义列表中在 Room 中制作 TypeConverter?
- scala - 在 Scala 中为泛型 T(如果可用)获取 Numeric[T]
- .net - 如何仅在 VB.Net 中检测移动设备?
- css - 有没有办法说两个相邻的 CSS 网格列总共占用了一定的空间?
- powershell - 从 Mac/Nix 示例转换 Windows 上的 ncat 命令
- c - C 中的浮点数组初始化 - x86 asm 编译器输出 - 找不到 ieee754 表示位/十六进制
- python - 正则表达式意外结果
- c# - 如何检测为什么表格关闭?
- python - Django REST - 类型不正确。预期的 pk 值,收到的 str(pk 是一个 CharField)
- python - 仅替换同一列中的某些行