AWS上の1つのZookeeperインスタンスを持つ2つのブローカー設定で、カフカに奇妙な問題が発生しました。各ブローカーは別個のアベイラビリティゾーン(AZ)にあります。孤独なZookeeperインスタンスは、ブローカーの1人とAZを共有します。 私は、ブローカがダウンしているときでも、データがカフカに流れるようにするために、ロールバック再起動の状況を模索しようとしています。AWSのカフカ消費問題
他のAZブローカーが削除されたとき、私はZookeeperとAZを共有するブローカーへのスムーズな移行を見ることができます。しかし、私がZookeeperと共有しているAZ上のKafkaブローカーを取り除くと、他のAZブローカーはデータを消費しません。しかし、私はリーダーの割り当てが起こっているのを見ている。これが私たちのセットアップ、Kafka、またはZookeeperに問題があるかどうかはわかりません。
私たちは、ブローカ間通信のためにSSLを有効にしています。また、プロデューサはSSLを使用してKafkaと通信します。 Here is the server.propertiesは、ブローカーID以外の両方のブローカーで同一です。 here is our Kafka setupもあります。
EDIT:別のコンシューマ(Logstashを使用)で同じ結果が得られます。
Broker-1は、ZookeeperとAZを共有します。 Broker-0は他のAZ上に単独で存在します。
パート1:ブローカー-1にブローカー-0
/opt/kafka/bin/kafka-topics.sh --zookeeper 10.0.1.x:2181 --describe
Topic:test PartitionCount:1 ReplicationFactor:2 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0,1 Isr: 1,0
実行消費者にカフカを停止します。
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic test --new-consumer --consumer.config client.ssl
リーダーはBroker-0です。 Broker-1のデータを消費できます Broker-0でKafkaサービスを停止します。 Broker-1でデータを消費/読み取りできるかどうか。ブローカー-0
/opt/kafka/bin/kafka-topics.sh --zookeeper 10.0.1.x:2181 --describe
Topic:test PartitionCount:1 ReplicationFactor:2 Configs:
Topic: test Partition: 0 Leader: 1 Replicas: 0,1 Isr: 1
からブローカー-1へのリーダーの変更パート2:ブローカー-0に
スタートカフカ
/opt/kafka/bin/kafka-topics.sh --zookeeper 10.0.1.x:2181 --describe
Topic:test PartitionCount:1 ReplicationFactor:2 Configs:
Topic: test Partition: 0 Leader: 1 Replicas: 0,1 Isr: 1,0
Part-を実行し、両方のブローカーを持っています3:ブローカー1でKafkaを停止する
ランニングコンシューマーo nブローカー-0
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic test --new-consumer --consumer.config client.ssl
リーダーはブローカー - 1です。 Broker-0のデータを消費することができる Broker-1でKafkaサービスを停止する Broker-0でデータを消費/読み込めない。
/opt/kafka/bin/kafka-topics.sh --zookeeper 10.0.1.x:2181 --describe
Topic:test PartitionCount:1 ReplicationFactor:2 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0
パート4:瞬時にデータの消費を再開しますバックアップブローカー-1のカフカを開始
を実行し、両方のブローカーを持っています。不思議なことに、見かけの「非消費」段階で送信されたメッセージも、Broker-1 Kafkaがオンラインに戻ったときに表示されます。
/opt/kafka/bin/kafka-topics.sh --zookeeper 10.0.1.x:2181 --describe
Topic:test PartitionCount:1 ReplicationFactor:2 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0,1
任意の洞察力?
ちょうど3人の動物園で同じシナリオを試みました。ちょうど基本的に、前にもなかったAZに2人の動物園の飼育係を追加しました。同じ結果が得られました。 – urover
また、両方のAZからKafkaに生産を試みて、サブネットを使って問題を解決しようとしました。 – urover