Kafka交易相关问题

问题描述 投票:0回答:0

我写了一个Kafka消费者和生产者。生产者是一个事务生产者,消费者配置了 isolation.level as read_commited。

但最终,一段时间后,消费者无法读取数据。它不会突然发生。它最终会发生。

当我检查时,我发现与 read_commited 消费者关联的 LSO (lastStableOffset) 即使在生产者端完成交易后也没有更新。它仍然是交易消息的起始索引。

如果有人对此有任何想法,请指导我。但是,我正在使用 2.3.0 版的 3 节点集群 kafka 设置。以下是我在 Kafka 代理的 server.properties 中指定的一些属性。

  • default.replication.factor=3
  • min.insync.replicas=2
  • offsets.topic.replication.factor=3
  • transaction.state.log.replication.factor=3
  • transaction.state.log.min.isr=2
  • offsets.retention.minutes=10080
  • transaction.max.timeout.ms=18000000
  • num.partitions=2
  • log.retention.hours=24

当我尝试将 KafkaConsumer 更改为 read_uncommited 模式时,它开始读取消息,因为它不再依赖于 lastStableOffset。所以,我相信它与 lastStableOffset 的更新有一些联系。

java apache-kafka kafka-consumer-api kafka-producer-api
© www.soinside.com 2019 - 2024. All rights reserved.