私はメッセージを送信しようとしたときに突然TimeoutExceptionsを投げ始めたKafkaProducer
があります。 max.block.ms
プロパティを60000msに設定し、テストブロックを60sに設定しても、エラーメッセージは常に200ms未満の時間になります。実際に60000msを表示する唯一の時間は、デバッグモードで実行し、手動でwaitOnMetadata
メソッドを実行する場合です。Apache KafkaProducerがメッセージを送信するときにTimeoutExceptionをスローする
エラー例:突然のメタデータを更新することができない理由
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 101 ms.
誰でも知っていますか?プロデューサーの実装が間違っているのは分かっています。私がテストを別のサーバーで実行すると、それが動作してから変更していないだけでなく、すべてが成功しました。これにはどんなサーバー側の理由がありますか?ブローカーを再起動する必要がありますか?そして、なぜ私はそれを実行させる場合、タイムアウトメッセージは、不正な時間を表示するのだろうか?
プロデューサーのセットアップ:
val props = new Properties()
props.put("bootstrap.servers", getBootstrapServersFor(datacenter.mesosLocal))
props.put("batch.size","0")
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer")
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer")
props.put("max.block.ms","60000")
new KafkaProducer[String,String](props)
マシンはIaaS環境でブローカーをホストしていますか?その場合は、advertised.host.name configを設定し、クライアントに接続するようにしてください。 – amethystic
動作していた前の値を設定していないのに、動作している他のサーバの値を設定していない場合、なぜ今設定するのが助かりますか? – annedroiid
kafka-console-producerを実行しようとしましたか? –