0

在早期版本的 Kafka 中,在消费者组不匹配期间,事务 id 和主题分区之间应该有一次性语义静态映射,因此事务 id 有可能获得不同的主题分区。

为避免这种情况KIP-447:生产者可扩展性仅在实现语义后,我从 KIP-477 中了解到,旧生产者在新 API(sendOffsetToProdcuer)的帮助下使用 fetch offset 调用进行防护,因此事务。 id 不用于围栏。

但我的疑问是,

  1. 仍然是事务性生产者期望 transaction.id 我应该如何为最新的 Kafka 版本选择这个值?

  2. transaction.id 应该与分区有静态映射,获取偏移量防护仅在消费者组重新平衡期间生效?

  3. 这个值对最新版本无效吗?

请帮我解决这个问题,我正在尝试了解 Kafka EoS 并在生产系统中实现它。

4

1 回答 1

1

既然你用标记了这个,我假设你正在使用它;现在每个实例都transactional.id可以不同(因为以前仅生产者的事务需要它)。不再需要将 id 绑定到组/主题/分区,并且需要的生产者数量要少得多。

https://docs.spring.io/spring-kafka/docs/current/reference/html/#exactly-once

经纪人需要是 2.5 或更高版本。

于 2021-04-22T13:10:29.103 回答