4.9. リバランスの影響の最小限に抑える方法


グループ内のアクティブなコンシューマー間のパーティションをリバランスするには、次の操作分の時間がかかります。

  • コンシューマーによるオフセットのコミット
  • 作成される新しいコンシューマーグループ
  • グループリーダーによるグループメンバーへのパーティションの割り当て
  • 割り当てを受け取り、取得を開始するグループのコンシューマー

リバランスプロセスにより、サービスのダウンタイムが長くなる可能性があります。特に、コンシューマーグループクラスターのローリング再起動中にリバランスが繰り返し発生する場合に顕著です。

この状況では、グループ内の各コンシューマーインスタンスに一意の識別子 (group.instance.id) を割り当てることで、静的メンバーシップ を導入できます。静的メンバーシップは永続性を使用し、セッションタイムアウト後の再起動時にコンシューマーインスタンスが認識されるようにします。その結果、コンシューマーはトピックパーティションの割り当てを維持し、障害または再起動後にグループに再度参加する際の不要なリバランスが減ります。

さらに、max.poll.interval.ms 設定を調整すると、長時間にわたる処理タスクに起因するリバランスが防止され、新しいメッセージのポーリング間の最大間隔を指定できるようになります。max.poll.records プロパティーを使用すると、各ポーリング中にコンシューマーバッファーから返されるレコード数が制限されます。レコード数を減らすと、コンシューマーはより少ないメッセージをより効率的に処理できるようになります。長時間のメッセージ処理が避けられない場合は、そのようなタスクをワーカースレッドのプールにオフロードすることを検討してください。この並列処理アプローチを使用すると、大量のレコードでコンシューマーに負荷がかかることに起因する遅延や潜在的なリバランスが防止されます。

# ...
group.instance.id=UNIQUE-ID 1
max.poll.interval.ms=300000 2
max.poll.records=500 3
# ...
1
一意のインスタンス ID により、新しいコンシューマーインスタンスに同じトピックパーティションが割り当てられます。
2
コンシューマーがメッセージの処理を継続していることを確認する間隔を設定します。
3
コンシューマーから返される処理済のレコードの数を設定します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.