docker を使用して、zookeeper と kafka バージョン 5.4.0 の基本的な 3 サーバー クラスターをセットアップしました。Zookeeper と kafka については、3 つのブートストラップ サーバーすべてを指定しました。1 台のサーバーがダウンしてもクラスターが正常に動作するように、これをセットアップしようとしています。コントロールセンターを機能させようとしていますが、問題が発生しています。まず、サーバーの 1 つだけがコントロール センターを正常に実行できるように見えます。3 つすべてではなく、実行しているブートストラップ サーバーを指定した場合のみです。他の 2 つのサーバーでコントロール センターを起動しようとすると、起動に失敗し、次のログが継続的に記録されます。
INFO unable to get command store (io.confluent.command.CommandStore)
これを実現する最善の方法がわかりません。役立つかもしれないので、zookeeper/broker ペアの docker-compose ファイルと、コントロール センターのファイルを以下に投稿します。指定に誤りがある場合、または変更が適切であると思われる場合はお知らせください。
Zookeeper/kafka ブローカー docker-compose.yml (他はアドバタイズされたリスナー IP のみが異なります):
---
version: '2'
services:
zookeeper:
image: confluentinc/cp-zookeeper:5.4.0
hostname: zookeeper
container_name: zookeeper
network_mode: host
restart: always
ports:
- "2181:2181"
environment:
ZOOKEEPER_SERVER_ID: 2
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ZOOKEEPER_INIT_LIMIT: 5
ZOOKEEPER_SYNC_LIMIT: 2
ZOOKEEPER_SERVERS: "10.100.1.1:2888:3888;10.100.1.2:2888:3888;10.100.1.3:2888:3888"
volumes:
- ./zk-data:/var/lib/zookeeper/data
- ./zk-txn-logs:/var/lib/zookeeper/log
broker:
image: confluentinc/cp-enterprise-kafka:5.4.0
hostname: broker
container_name: broker
depends_on:
- zookeeper
network_mode: host
restart: always
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: '10.100.1.1:2181,10.100.1.2:2181,10.100.1.3:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://10.100.1.1:9092"
KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: 10.100.1.1:9092,10.100.1.2:9092,10.100.1.3:9092
CONFLUENT_METRICS_REPORTER_ZOOKEEPER_CONNECT: 10.100.1.1:2181,10.100.1.2:2181,10.100.1.3:2181
CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 2
CONFLUENT_METRICS_ENABLE: 'true'
CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous'
volumes:
- ./kafka-data:/var/lib/kafka/data
コントロールセンター docker-compose.yml:
---
version: '2'
services:
control-center:
image: confluentinc/cp-enterprise-control-center:5.4.0
hostname: control-center
container_name: control-center
network_mode: host
restart: always
ports:
- "9021:9021"
environment:
CONTROL_CENTER_BOOTSTRAP_SERVERS: '10.100.1.1:9092'
CONTROL_CENTER_ZOOKEEPER_CONNECT: '10.100.1.1:2181'
CONTROL_CENTER_REPLICATION_FACTOR: 1
CONTROL_CENTER_INTERNAL_TOPICS_PARTITIONS: 1
CONTROL_CENTER_MONITORING_INTERCEPTOR_TOPIC_PARTITIONS: 1
CONFLUENT_METRICS_TOPIC_REPLICATION: 1
PORT: 9021
volumes:
- ./control-center:/var/lib/confluent-control-center