我试图设置 Kafka Connect 以运行 ElasticsearchSinkConnector。
Kafka 设置,由 3 个使用 Kerberos、SSL 和 ACL 保护的代理组成。
到目前为止,我一直在尝试使用 docker/docker-compose(Confluent docker-image 5.4 with Kafka 2.4)连接到远程 kafka 安装(Kafka 2.0.1 - 实际上是我们的生产环境)运行连接框架和 elasticserch-server 本地)。
KAFKA_OPTS: -Djava.security.krb5.conf=/etc/kafka-connect/secrets/krb5.conf
CONNECT_BOOTSTRAP_SERVERS: srv-kafka-1.XXX.com:9093,srv-kafka-2.XXX.com:9093,srv-kafka-3.XXX.com:9093
CONNECT_REST_ADVERTISED_HOST_NAME: kafka-connect
CONNECT_REST_PORT: 8083
CONNECT_GROUP_ID: user-grp
CONNECT_CONFIG_STORAGE_TOPIC: test.internal.connect.configs
CONNECT_OFFSET_STORAGE_TOPIC: test.internal.connect.offsets
CONNECT_STATUS_STORAGE_TOPIC: test.internal.connect.status
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1
CONNECT_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_INTERNAL_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_INTERNAL_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_ZOOKEEPER_CONNECT: srv-kafka-1.XXX.com:2181,srv-kafka-2.XXX.com:2181,srv-kafka-3.XXX.com:2181
CONNECT_SECURITY_PROTOCOL: SASL_SSL
CONNECT_SASL_KERBEROS_SERVICE_NAME: "kafka"
CONNECT_SASL_JAAS_CONFIG: com.sun.security.auth.module.Krb5LoginModule required \
useKeyTab=true \
storeKey=true \
keyTab="/etc/kafka-connect/secrets/kafka-connect.keytab" \
principal="<principal>;
CONNECT_SASL_MECHANISM: GSSAPI
CONNECT_SSL_TRUSTSTORE_LOCATION: <path_to_truststore.jks>
CONNECT_SSL_TRUSTSTORE_PASSWORD: <PWD> …Run Code Online (Sandbox Code Playgroud)
在为Apache Kafka创建主题时,什么是最佳实践?
每个人都允许自动创建主题,或者您是如何做到的?您是否将主题创建步骤与kafka-instance的开头捆绑在一起?
我有一个基于docker的Kafka安装,它已被多个应用程序使用.如何将每个应用程序的主题创建与Kafka容器的启动分开?看看Confluents音乐演示他们通过旋转一个新的kafka图像来创建主题,调用"create-topic-script"然后让容器死掉.这感觉"abcky",但maby是唯一的方式?
问候
我正在努力以分布式模式在 Kubernetes (DockerEE) 上设置 Kafka Connect。
目前,我在三个相应的 k8s-pod 上有一个由三个工作人员组成的集群。
我面临的问题是我的员工之间很难相互沟通(至少我是这么认为的)。
当我尝试启动连接器时,我得到:
{"error_code":409,"message":"Cannot complete request because of a conflicting operation (e.g. worker rebalance)"}
Run Code Online (Sandbox Code Playgroud)
作为回应。令人困惑的是我并不总是得到这个错误响应。有时它会起作用并且连接器会按预期启动。
从我读到的内容来看,这可能归结为我配置为 CONNECT_REST_ADVERTISED_HOST_NAME 的内容。
在 k8s 中运行时作为广告地址放置的正确值是多少?
BR