作者:男人邦121121121 | 来源:互联网 | 2023-02-06 18:43
卡夫卡版:0.9
我们有一个试图从Kafka读取的java应用程序.但我们看到kafka消息中的数据损坏
以下是Java应用程序的错误:
org.apache.kafka.common.KafkaException: Error deserializing key/value for partition varnish_raw_logs-31 at offset 568565
Caused by: org.apache.kafka.common.record.InvalidRecordException: Record is corrupt (stored crc = 1835858402, computed crc = 4025136930)
所以我决定看看哪个节点拥有分区31,并使用kafka dump log util查看数据的外观.从下面看,分区31由node-4拥有,node-2拥有其副本.
Topic: varnish_raw_logs Partition: 31 Leader: 4 Replicas: 4,2 Isr: 4,2
现在,当我使用dump util查看来自节点4和节点2的日志时.我看到数据在副本节点(节点-2)中有效,但在主节点中已损坏.
所以我的问题是:master(node-4)进入这种状态的根本原因是什么?虽然您可以争辩我们应该跳过特定于事件的错误.我不想错过这些消息,因为我在复制品中有一个好消息.