2016-04-05 6 views
2

私たちは3台のサーバーを持つkafkaクラスターを使用していますが、それらのすべてには飼育係もいます。それぞれ6つのパーティションで7つのトピックがあります。各トピックには3つのJavaコンシューマーがあります。私がコンシューマを始めるときには、消費者にパーティションを割り当てるのに3〜5分ほどかかります。同じ行動が、消費者の一人を止めてスタートしたときに遭遇します。どのように制御または削減できますか?kafkaパーティションの再調整(割り当て)に時間がかかりすぎています

私は新しい消費者

で、カフカ0.9を使用しています、注意してください私はあなたがより多くの情報が必要なら、私に知らせて、それぞれのserver.propertiesカフカ

auto.leader.rebalance.enable=true 
leader.imbalance.check.interval.seconds=10 

のプロパティの下に追加されました。 ありがとう

答えて

3

あなたの消費者が 'session.timeout.ms'に使用している値を確認してください。

デフォルトは30秒です。この時間が経過するまで、調整によって再調整が開始されることはありません。 30秒間ハートビートなし。

メッセージを処理するのに時間がかかり過ぎると、コーディネーターが消費者が死んだと思うため、再調整が行われる可能性があります。

+0

はい、私は5分として長いセッションタイムアウトを使用しているので、その理由が考えられます。メッセージの処理には約2-3分かかります。他の方法はありますか? –

+0

1つのメッセージを処理するのに時間がかかる場合は、いいえ。あなたはいつもメッセージをデータベースに書き込んで、他のいくつかのプロセスに重い作業をさせることができます。 –

関連する問題