16.2.3. 非同期ロギング
Red Hat build of Keycloak は非同期ロギングをサポートしており、高スループット と 低レイテンシー を必要とするデプロイメントに役立つ可能性があります。非同期ロギングは、すべてのログレコードの処理を別のスレッドを使用して行います。ロギングハンドラーは、同期ロギングとまったく同じ方法で呼び出されますが、別々のスレッドで実行されます。すべての Red Hat build of Keycloak ログハンドラーに対して非同期ロギングを有効化できます。非同期ロギングが有効化されているログハンドラーごとに、専用のスレッドが作成されます。
非同期ロギングの基礎となるメカニズムでは、ログレコードを処理するためにキューが使用されます。すべての新しいログレコードはキューに追加され、非同期ロギングが有効になっている特定のログハンドラーに公開されます。ログハンドラーごとにキューが異なります。
キューがすでにいっぱいの場合は、メインスレッドをブロックし、キューの空き領域を待機します。
16.2.3.1. 非同期ロギングを使用するタイミング リンクのコピーリンクがクリップボードにコピーされました!
- 受信リクエストの レイテンシーを低くする 必要がある場合
- より高いスループット が必要な場合
- ワーカースレッドプールが小さく、ロギングを別のスレッドにオフロードしたい場合
- I/O 負荷の高いログハンドラー の影響を軽減したい場合
- リモートの宛先 (ネットワーク syslog サーバーなど) にロギングしており、ワーカースレッドのブロックを回避したい場合
非同期ロギングを有効にすると、追加の別個のスレッドと内部キューにより、追加のメモリーオーバーヘッド が発生する可能性があることに注意してください。その場合、リソースが制限された環境での使用は推奨しません。さらに、予期しないサーバーのシャットダウンにより、ログレコードが失われる リスクが生じます。