問題タブ [aws-msk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
506 参照

amazon-web-services - Kafka: Understanding Broker failure

I have a Kafka cluster with:

  • 2 brokers b-1 and b-2.
  • 2 topics with both: PartitionCount:1 ReplicationFactor:2 min.insync.replicas=1

Here is what happened:

Within the code, I got this error when my producer performed a poll around that time:

Broker b-2 logs have this:

My understanding here is that (1) b-2 went down i.e. unable to connect to Zookeeper (2) Messages were produced to b-1 successfully during this time. (3) b-1 was also trying to forward messages to b-2during this downtime due to the replication factor set to 2 (4) All these forwarded messages (ProduceRequests) got timed-out after 600s

My question:

  1. Is my understanding correct and how I can prevent this from happening again?
  2. If I had 3 brokers here, would b-1 have tried to connect to b-3 right away rather than waiting for b-2? Is that a good workaround? (Assuming topic replication factor = 2 everywhere)
0 投票する
1 に答える
508 参照

java - KafkaConsumer Java SDK を使用して AWS MSK クラスターからイベント フォームを使用するにはどうすればよいですか?

AWS MSK でクラスターを作成し、トピックを作成しました。クラスターと同じ VPC 内の EC2 インスタンスからイベントを生成および消費できます。具体的な使用例は、Java を使用してイベントを消費することです。KafkaClient AWS SDK にはイベント消費のためのメソッドがないため、ここでは使用できません。IP は VPC の内部にあるため、 KafkaConsumerの作成中に、Properties() でブートストラップ サーバーを直接渡すことはできません。

MSK に接続する方法についてこの AWSガイドを確認しましたが、この正確なユース ケースにどの方法が適しているかはわかりません。私はいくつかの方法を試しました -

  1. アドバタイズされた.listeners をインスタンスのパブリック IP に設定します。しかし、KafkaConsumer を作成した後、トピックをリストしているときにこのエラーが発生し続けました- Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

  2. セキュリティ グループのインバウンド ルールで関連するポート (私の場合は PLAINTEXT の場合は 9092) を開きます。Connection refusedこれを行った後、ポート 9092 に telnet しようとすると、まだエラーが発生していました。

私の質問は、上記のいずれかが機能するかどうかです。これを解決できる何かが他にありません。または、上記の方法は機能しませんか?

ここでの最終目標は、Java を使用して MSK クラスターからのイベントを消費することです。