Apache kafka Kafka在spring上流式传输,一次ACL的问题:TransactionalIdAuthorizationException

Apache kafka Kafka在spring上流式传输,一次ACL的问题:TransactionalIdAuthorizationException,apache-kafka,apache-kafka-streams,confluent-platform,Apache Kafka,Apache Kafka Streams,Confluent Platform,我无法从springboot kafka streams应用程序连接到Confluent cloud上的主题,连接失败,只出现一行错误 org.apache.kafka.common.errors.TransactionalIdAuthorizationException:事务Id授权失败。 我认为这是因为该主题被配置为允许具有指定事务id()的事务。我的服务是一个流式应用程序,在每个StreamThread(中创建生产者方法)中生成一个事务id,该id定义为applicationId+“-”+

我无法从springboot kafka streams应用程序连接到Confluent cloud上的主题,连接失败,只出现一行错误
org.apache.kafka.common.errors.TransactionalIdAuthorizationException:事务Id授权失败。

我认为这是因为该主题被配置为允许具有指定事务id()的事务。我的服务是一个流式应用程序,在每个StreamThread(中创建生产者方法)中生成一个事务id,该id定义为
applicationId+“-”+taskId
,与主题ACL上定义的id不匹配


这是正确的吗?如果是,是否有解决办法?

您需要通过仅指定前缀来使用通配符ACL,即,

是否有添加标记的原因?Spring只使用底层kafka客户端和kafka streams库,因此这超出了它的控制范围。注意,编辑以删除标记。感谢@matthias-j-sax的回答。所以流式客户端不支持显式事务id前缀?事务前缀必须始终是此it工作的应用程序id,或者我遗漏了什么?正确:
Transaction.id
不能由用户配置,但Kafka Streams使用
application.id
作为前缀自动配置它。