许可证主题的 Kafka Connect 复制因子

Kafka Connect replication factor for license topic

我正在尝试 运行 Kafka-Connect 在本地使用 docker-compose。就像我喜欢 Confluent 产品和 Kafka 一样,有时通过一些配置或找到一个一致的例子是一个巨大的追求。 在我的 docker-compose 文件中,我现在正在为 brokerzksrkafka-connect 使用 6.0.0 版本,但是我我也尝试过旧版本。

经纪人(confluentinc/cp-server:6.0.0)失败:

INFO [Admin Manager on Broker 1]: Error processing create topic request CreatableTopic(name='_confluent-license', numPartitions=1, replicationFactor=3, assignments=[], configs=[CreateableTopicConfig(name='cleanup.policy', value='compact'), CreateableTopicConfig(name='min.insync.replicas', value='2')], linkName=null, mirrorTopic=null) (kafka.server.AdminManager)

而且我根本不知道如何将 confluent.topic.replication.factor 作为环境变量传递给我的工作人员。我已经添加了:

      CONNECT_CONFLUENT_TOPIC_REPLICATION_FACTOR: "1"
      CONFLUENT_TOPIC_REPLICATION_FACTOR: "1"

...但它们都被忽略了。 更何况,我什至找不到docs中提到的_confluent-license,只有_confluent-command.

我怎样才能在 docker-compose 内部使连接在本地工作而不设置 3 个代理?

代理失败,因为该主题是从它创建的,所以您需要代理上的变量

KAFKA_CONFLUENT_TOPIC_REPLICATION_FACTOR: 1

否则,你想要cp-kafka,而不是cp-server

正如 OneCricketeer 指出的那样,该值必须在代理容器中设置,这也解释了为什么它是代理容器失败,而不是连接工作人员。这绝对有道理。 代理不会因为客户端配置错误而失败。

可能让找到解决方案变得更加混乱的是许可证主题复制因子的环境变量和配置 属性 不遵循环境变量是大写配置的常规模式 属性 点替换为下划线(和适用的前缀)。实际上我们得到: confluent.topic.replication.factor -> KAFKA_CONFLUENT_TOPIC_REPLICATION_FACTOR