【发布时间】:2020-06-28 08:06:44
【问题描述】:
我无法从 springboot kafka-streams 应用程序连接到 Confluent 云上的主题,连接失败并出现一条错误行
org.apache.kafka.common.errors.TransactionalIdAuthorizationException: Transactional Id authorization failed.
我相信这是因为主题配置为允许具有指定事务 ID (https://docs.confluent.io/current/kafka/authorization.html#enabling-authorization-for-idempotent-and-transactional-apis) 的事务。我的服务是一个流应用程序,在每个 StreamThread 中生成一个事务 ID(在 https://github.com/apache/kafka/blob/2.4.1/streams/src/main/java/org/apache/kafka/streams/processor/internals/StreamThread.java 中创建生产者方法),定义为 applicationId + "-" + taskId,这与主题 ACL 中定义的不匹配。
这是否正确,如果正确,是否有解决方法?
【问题讨论】:
-
你添加spring-kafka标签是有什么原因吗? Spring 只是使用底层的 kafka-clients 和 kafka-streams 库,所以这是它无法控制的。
-
注意,编辑删除标签。
标签: apache-kafka apache-kafka-streams confluent-platform