我正在尝试使用docker-compose
在本地运行Kafka-Connect
。尽管我很喜欢Confluent产品和Kafka,但有时传递一些配置或找到一个一致的示例是一项艰巨的任务。在我的docker compose文件中,我现在对broker
、zk
、sr
和kafka-connect
使用6.0.0
版本,但我也尝试过旧版本。
broker(confluentinc/cp-server:6.0.0
(失败,出现:
INFO〔Broker 1上的管理员管理器〕:处理创建主题时出错request CreatableTopic(name='_confluent-license',numPartitions=1,replicationFactor=3,assignments=[],configs=[CreateableTopicConfig(name='cleanup.policy',value='compact'(,CreateableTopicConfig(name='min.insync.re副本',value='2'(],linkName=null,mirrorTopic=null((kafka.server.AdminManager(
我根本不知道如何将confluent.topic.replication.factor
作为env-var传递给我的员工。我添加了两者:
CONNECT_CONFLUENT_TOPIC_REPLICATION_FACTOR: "1"
CONFLUENT_TOPIC_REPLICATION_FACTOR: "1"
但它们都被忽略了。更重要的是,我在任何地方都找不到文档中提到的_confluent-license
,只有_confluent-command
。
如何在不设置3个代理的情况下,使连接在docker-compose
内部本地工作?
broker失败了,因为该主题是从中创建的,所以您需要broker 上的变量
KAFKA_CONFLUENT_TOPIC_REPLICATION_FACTOR: 1
否则,您需要cp-kafka
,而不是cp-server
正如OneCricketer所指出的,该值必须在broker容器中设置,这也解释了为什么失败的是broker容器,而不是连接工人。这绝对有道理Broker不能因为客户端配置错误而失败
找到解决方案可能会更令人困惑的是,许可证主题复制因子的env-var和配置属性没有遵循常规模式,其中env-var是一个大写配置属性,用下划线(和前缀,如适用(替换点。事实上,我们得到:confluent.topic.replication.factor
->KAFKA_CONFLUENT_TOPIC_REPLICATION_FACTOR