Landoop Kafka Connect修改Worker属性及客户端配置覆盖问题
解决Landoop Fast Data Dev中Kafka Connect Worker配置覆盖问题
针对使用landoop/fast-data-dev:2.6搭建Kafka集群时,需要配置Worker端connector.client.config.override.policy=All以支持连接器级别的producer.override.batch.size参数修改的问题,以下是具体解决方案:
核心疑问解答
1. 如何修改默认的Worker属性
有两种可靠方式:
- 挂载自定义的Worker配置文件替换容器内默认文件
- 使用正确格式的环境变量注入配置(需遵循Landoop的环境变量命名规则)
2. 属性文件应放置在何处
容器内默认的Worker配置路径为/connect,只需将本地自定义配置文件挂载到该路径下,覆盖默认文件即可。
3. 属性文件应使用什么名称
需与Landoop默认加载的配置文件名一致,即connect-avro-distributed.properties,否则Worker无法识别加载。
具体配置步骤
方法一:挂载自定义配置文件
- 导出容器内默认配置到本地:
先启动容器后执行以下命令:docker cp kafka-cluster:/connect/connect-avro-distributed.properties ./connect-avro-distributed.properties - 在本地配置文件末尾添加所需属性:
connector.client.config.override.policy=All - 修改
docker-compose.yml,添加配置文件挂载:version: '2' services: kafka-cluster: image: landoop/fast-data-dev:2.6 environment: ADV_HOST: 127.0.0.1 RUNTESTS: 0 ports: - 2181:2181 - 3030:3030 - 8081-8083:8081-8083 - 9581-9585:9581-9585 - 9092:9092 volumes: - ./connectors/news/crypto-panic-connector-1.0.jar:/connectors/crypto-panic-connector-1.0.jar # 添加自定义配置挂载 - ./connect-avro-distributed.properties:/connect/connect-avro-distributed.properties - 重启容器:
docker-compose down && docker-compose up -d
方法二:正确设置环境变量
Landoop对Kafka Connect Worker的环境变量命名规则为:前缀CONNECT_ + 原配置名转为大写并将.替换为_。
修改docker-compose.yml的environment字段:
environment: ADV_HOST: 127.0.0.1 RUNTESTS: 0 # 正确配置Worker的覆盖策略 CONNECT_CONNECTOR_CLIENT_CONFIG_OVERRIDE_POLICY: 'All'
连接器配置注意事项
producer.override.batch.size=65536是连接器级别的配置项,不需要放在容器环境变量中,而是在创建连接器时的JSON配置里添加,示例如下:
{ "name": "crypto-panic-connector", "config": { "connector.class": "xxx.xxx.CryptoPanicConnector", // 其他连接器配置... "producer.override.batch.size": "65536" } }
对之前尝试错误的说明
- 之前使用
CONNECT_CONNECT_CLIENT_CONFIG_OVERRIDE_POLICY是错误的,原配置项为connector.client.config.override.policy,对应的环境变量应为CONNECT_CONNECTOR_CLIENT_CONFIG_OVERRIDE_POLICY producer.override.batch.size属于连接器专属配置,不能通过容器环境变量设置,必须在创建连接器时指定
内容的提问来源于stack exchange,提问作者leonaugust
相关产品推荐
相关产品推荐

