Apache kafka 如何解决在事务状态分区上检查点无效的消费者偏移量和生产者历元的问题

Apache kafka 如何解决在事务状态分区上检查点无效的消费者偏移量和生产者历元的问题,apache-kafka,Apache Kafka,我在server.log中有两种日志条目 第一类: INFO [TransactionCoordinator id=3] Initialized transactionalId Source: AppService Kafka consumer -> Not empty string filter -> CDMEvent mapper -> (NonNull CDMEvent filter -> Map -> Sink: Kafka CDMEvent produce

我在server.log中有两种日志条目

第一类:

INFO [TransactionCoordinator id=3] Initialized transactionalId Source: AppService Kafka consumer -> Not empty string filter -> CDMEvent mapper -> (NonNull CDMEvent filter -> Map -> Sink: Kafka CDMEvent producer, Nullable CDMEvent filter -> Map -> Sink: Kafka Error producer)-bddeaa8b805c6e008c42fc621339b1b9-2 with producerId 78004 and producer epoch 23122 on partition __transaction_state-45 (kafka.coordinator.transaction.TransactionCoordinator)
警告:由于检查点偏移量903无效,将
\u消费者偏移量-6的第一个脏偏移量重置为日志开始偏移量918。(
kafka.log.LogCleanerManager$

第二类:

INFO [TransactionCoordinator id=3] Initialized transactionalId Source: AppService Kafka consumer -> Not empty string filter -> CDMEvent mapper -> (NonNull CDMEvent filter -> Map -> Sink: Kafka CDMEvent producer, Nullable CDMEvent filter -> Map -> Sink: Kafka Error producer)-bddeaa8b805c6e008c42fc621339b1b9-2 with producerId 78004 and producer epoch 23122 on partition __transaction_state-45 (kafka.coordinator.transaction.TransactionCoordinator)
我发现一些建议提到删除检查点文件可能会有所帮助:

“我们聚集的目的是:

阻止经纪人

删除日志清理器检查点文件

( cleaner-offset-checkpoint )
启动经纪人

这为我们解决了问题。”


使用所有检查点文件
(清理偏移检查点、日志开始偏移检查点、恢复点偏移检查点、复制偏移检查点)尝试此操作是否安全
或者根本不建议使用它们中的任何一个?

我已停止每个代理并将cleaner offset checkpoint移动到备份位置,并在没有该文件的情况下启动它,代理整齐地启动,删除了大量多余的段,并且它们不记录:

警告:由于检查点偏移量无效,将_消费者_偏移量的第一个脏偏移量重置为日志开始偏移量

显然,即使在2.0中,这个问题/缺陷仍然没有得到解决。2.但是,这并没有按照预期压缩消费者补偿,即offsets.retention.minutes默认值为10080(7天),我试图明确地将其设置为5040,但没有帮助,仍然有超过一个月的消息,因为log.cleaner.enable默认为true,应该压缩,但事实并非如此,唯一可能的尝试是为_consumer_offset主题再次将cleanup.policy设置为delete,但这是触发问题的操作,因此我有点不愿意这样做。我在这里描述的问题也没有解决,显然有一些东西阻止kafka-consumer-groups.sh读取uu consumer_offset主题(当发出--bootstrap server选项时,否则它会从zookeeper读取)并显示结果,这是kafka工具没有问题的事情,我相信这两个问题是相互关联的。 我认为该主题没有被压缩的原因是,根据代理设置,它包含的消息具有完全相同的密钥(甚至时间戳),比它应该具有的时间早。卡夫卡工具也会忽略某些记录,不会将它们解释为该显示中的消费群体。为什么kafka-consumer-groups.sh会忽略所有内容,这可能是由于这些记录的某些损坏