Kafka Connect 如何与支持 SASL 的 Broker 通信?

How Kafka Connect will communicate with a SASL enabled Broker?

我已经为我的 Zookeper 和 Broker 启用了 SASL PLAIN 身份验证。似乎有效,我只能使用我设置的凭据查看主题及其内容。问题是,即使所有连接器的状态都是 "RUNNING",也没有任何数据进入 kafka 主题。所以我重新启动了 Kafka Connect,现在我无法连接它,出现 connection refused 错误。

我已经很困惑了,Kafka Connect 是如何与 SASL 激活的代理建立连接的?它需要经过身份验证才能将数据写入主题吗?我怎样才能做到这一点?例如;我在 connect-distributed.properties 文件中为 Kafka Connect 提供了 Schema Registry 基本身份验证信息,如下所示:

schema.registry.basic.auth.user.info=admin:secret
key.converter.basic.auth.user.info=admin:secret
value.converter.basic.auth.user.info=admin:secret
schema.registry.basic.auth.credentials.source=USER_INFO
key.converter.basic.auth.credentials.source=USER_INFO
value.converter.basic.auth.credentials.source=USER_INFO

我相信我需要做类似的事情。但是在教程中我没有看到任何相关内容。

编辑: 连接服务似乎正在运行,但连接器无法获取主题的元数据。这意味着对 Kafka 的身份验证存在问题。

它似乎适用于以下配置。我不确定您是否需要添加 producer.consumer. 部分,但它们不会造成任何问题。我已将这些行添加到 connect-distributed.properties 文件。

sasl.mechanism=PLAIN
security.protocol=SASL_PLAINTEXT
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="admin" \
  password="secret";

producer.sasl.mechanism=PLAIN
producer.security.protocol=SASL_PLAINTEXT
producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="admin" \
  password="secret";

consumer.sasl.mechanism=PLAIN
consumer.security.protocol=SASL_PLAINTEXT
consumer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
  username="admin" \
  password="secret";