自動スケーリング プロセスがスケール インし、終了するノード/ポッドを選択すると、HTTP リクエストが処理を完了して応答する時間を確保できるように、ターゲット ノード/ポッドに既に入っている HTTP リクエストに猶予期間が与えられます。また、この期間中、ロード バランサーは、終了しようとしているノード/ポッドへの新しいリクエストの送信を停止します。
私の質問は、プロセス/コンテナーの 1 つに Kafka コンシューマーがあり、それが含まれているプロセスが終了しようとしていることを認識しておらず、Kafka とプロセスからのデータを消費し続けている場合はどうなるかということです。コンシューマーが消費されたデータを処理している間に、プロセスが終了する可能性があります。
では、Kafka コンシューマーが消費を停止し、既に消費されたレコードを処理するための猶予期間を与える解決策はありますか? HTTP リクエストに猶予期間があるのと似ていますか?
正常に処理された後に kafka オフセットを手動でコミットできるなど、いくつかの考えがあるかもしれません。ただし、すべてのシナリオが手動コミットに適しているとは限りません。レコードが消費されたらすぐに手動でコミットしてから処理するか、消費者に自動コミットさせる必要があるかもしれません。