web-dev-qa-db-ja.com

Kafkaトピック作成:ノード割り当ての待機中にタイムアウトしました

次のdocker-compose.ymlを使用して実行しているローカルkafka=

version: '2'
services:
  zookeeper:
    image: "confluentinc/cp-zookeeper:5.0.1"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  kafka:
    image: "confluentinc/cp-enterprise-kafka:5.0.1"
    ports:
      - '9092:9092'
    depends_on:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_Host:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_Host://localhost:9092
      KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 100

Scalaでkafka-client 2.1.0を使用して基本的な作成トピックを実行しようとしています:

val props = new Properties()
props.setProperty(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092")

val adminClient: AdminClient = AdminClient.create(props)
val newTopic = new NewTopic("test", 1, 1.toShort)
val topicsF = adminClient.createTopics(List(newTopic).asJavaCollection)
val result = topicsF.all().get()

しかし、しばらくしてから:

org.Apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.

コマンドラインを使用してトピックを作成できます。

kafka-topics --create \
    --zookeeper localhost:2181 \
    --replication-factor 1 \
    --partitions 1 \
    --topic test
Created topic "test".

kafka AdminClient API Timed out waiting for node assignment Javaを使用して同様の問題を説明しますが、コメントはシステムの再起動が私の側の場合ではない問題を修正したことを示唆しています。

9
Milan

Docker(または同様のもの)でKafka)を実行している場合は、リスナーを正しく構成する必要があります。 この記事 で詳細に説明しています。

ここに例があります ホストマシンからKafka=にアクセスするために使用できるDocker Composeの).

免責事項:私は記事を書きました:)

6
Robin Moffatt

localhostが問題だと思います。あなたのbootstrap-serversプロパティは、動作するはずのlocalhostの代わりに、作成ファイルで定義したアドバタイズされたホスト(192.168.99.100)を使用します。

0
Bitswazsky