我想在独立模式下运行一个kafka连接接收器以进行测试,因为尽管有一台强大的计算机,但我不想不必要地过度工作......
我在 docker-compose 文件中有此配置:
kafka-connect-sink:
image: confluentinc/cp-kafka-connect-base
container_name: kafka-connect-sink
depends_on:
- kafka-1
ports:
- "8084:8083"
environment:
CONNECT_BOOTSTRAP_SERVERS: "kafka-1:9092,kafka-2:9092,kafka-3:9092"
CONNECT_REST_PORT: 8083
CONNECT_GROUP_ID: compose-sink-group
CONNECT_CONFIG_STORAGE_TOPIC: docker-sink-configs
CONNECT_OFFSET_STORAGE_TOPIC: docker-sink-offsets
CONNECT_STATUS_STORAGE_TOPIC: docker-sink-status
CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter
CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: 'http://schema-registry:8081'
CONNECT_INTERNAL_KEY_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
CONNECT_INTERNAL_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
CONNECT_REST_ADVERTISED_HOST_NAME: "kafka-connect-sink"
CONNECT_LOG4J_ROOT_LOGLEVEL: "INFO"
CONNECT_LOG4J_APPENDER_STDOUT_LAYOUT_CONVERSIONPATTERN: "[%d] %p %X{connector.context}%m (%c:%L)%n"
CONNECT_LOG4J_LOGGERS: "org.apache.kafka.connect.runtime.rest=WARN,org.reflections=ERROR"
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: "1"
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: "1"
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: "1"
CONNECT_PLUGIN_PATH: '/usr/share/java,/usr/share/confluent-hub-components/'
volumes:
- "./kafka-connect-sa-key.json:/var/private/keys/kafka-connect-sa-key.json:ro"
command:
- bash
- -c
- |
# Export variable to avoid prompts during plugin installation
export CONFLUENT_FORCE_BOOTSTRAP=true
# Install Google Cloud Storage connector
confluent-hub install --no-prompt confluentinc/kafka-connect-gcs:latest
# -----------
# Launch the Kafka Connect worker
/etc/confluent/docker/run & sleep infinity
networks:
- kafka-connect-distributed
我试着摆弄了一下,但不幸的是没有运气......最终我不得不依靠创建 3 个经纪人并以分布式方式旋转整个过程。
有没有办法以独立模式旋转接收器连接器?意思是,我可以指定连接器仅复制其内部分区一次吗?
我查看了汇合文档,但没有指定如何在容器中执行此操作,我尝试在
command:
部分中的此条目中自定义启动
/etc/confluence/docker/运行独立模式和睡眠无限但这并没有帮助。
connect-standalone
而不是
standalone-mode
),但没有理由真的这样做该容器旨在与
connect-distributed
一起运行,并且两种模式的代码库基本相同,因此不会“超载”您的机器