java - 当 PROCESSING_GUARANTEE_CONFIG 设置为 EXACTLY_ONCE 时,Kafka 无法重新平衡

标签 java apache-kafka apache-kafka-streams exactly-once

我有一个工作正常的 Kafka 流应用程序。但是,当我添加属性时:

properties.put(StreamsConfig.PROCESSING_GUARANTEE_CONFIG, StreamsConfig.EXACTLY_ONCE);

然后我收到以下错误:

Exception in thread "trade-state-decider-a271c9f6-d9d8-488c-b91c-57cdfaf54894-StreamThread-1" org.apache.kafka.streams.errors.StreamsException: stream-thread [trade-state-decider-a271c9f6-d9d8-488c-b91c-57cdfaf54894-StreamThread-1] Failed to rebalance.


Caused by: org.apache.kafka.common.errors.TransactionalIdAuthorizationException: Transactional Id authorization failed.

有人知道什么可以解决这个问题吗?

最佳答案

如错误所示,您的应用程序没有使用事务的权限。使用事务需要特殊权限,您可以通过 ACL 启用这些权限。

有关您需要授予哪些权限的更多详细信息,请参阅文档:https://docs.confluent.io/current/kafka/authorization.html#enabling-authorization-for-idempotent-and-transactional-apis

关于java - 当 PROCESSING_GUARANTEE_CONFIG 设置为 EXACTLY_ONCE 时,Kafka 无法重新平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59134550/

相关文章:

java - Kafka Stream 的交互式调节

java - 在 Android 中创建单例 CountDownTimer

java - JTable setPreferredWidth 导致额外的列

java - Kafka - 非基于 ZooKeeper 的消费者与基于 ZooKeeper 的消费者

apache-kafka - 卡夫卡流 : How does rebalancing works between threads?

apache-kafka - 默认情况下,max.poll.intervals.ms设置为int.Max

apache-kafka - Kafka Stream 和 KTable 一对多关系连接

java - 在碰撞检测中获取 java.util.ConcurrentModificationError

java - 使用 Thymeleaf 和 Spring Boot 在表中实现一个按钮,该按钮从表中返回数据

java - 从kafka高级消费者获取偏移量