コンシューマーがメッセージを読み取り、スレッドがデータベースへのアクセスなど、メッセージが別のトピックに生成される前にさまざまなことを行うアプリケーションがあります。スレッドでメッセージを消費してから生成するまでの時間は、数分かかる場合があります。メッセージが新しいトピックに生成されると、コンシューマー キュー メッセージの作業が完了したことを示すためにコミットが行われます。このため、自動コミットは無効になっています。
私は高レベルのコンシューマーを使用していますが、私が気づいているのは、ズーキーパーとカフカのセッションがタイムアウトすることです。これは、コンシューマー キューで何かを行う前に時間がかかりすぎて、スレッドが戻ってコンシューマーからより多くを読み取るたびにカフカがリバランスすることになるためです。しばらくすると、コンシューマーが新しいメッセージを読み取るまでに長い時間がかかり始めます。
Zookeeper セッションのタイムアウトを非常に高く設定して問題にならないようにすることはできますが、それに応じてリバランス パラメータを調整する必要があり、kafka は他の副作用の中でもしばらくの間、新しいコンシューマを取得しません。
この問題を解決するためのオプションは何ですか? 両方を幸せに保つためにカフカと飼育係にハートビートする方法はありますか? 単純なコンシューマを使用した場合でも、これらと同じ問題がありますか?