3

私はこの質問があります、私はただそれをそこに投げています。着信するすべてのリクエストをログに記録するために、SpringベースのREST APIサーバーに小さなログ機能を実装しています。数千人のユーザーがこのAPIを使用することを期待しているため、I / Oロガーをブロックすると、すべてが遅くなります。この問題を解決するには、2つのアプローチがあります。1。メモリ内のarrylistを使用して非同期ロガーを使用します。次に、スプ​​リングスケジューラを使用して、これを定期的にログファイルにフラッシュします。2. JMSを使用して、ログをキューに送信します。キューがロギングを非同期的に処理できるようにします。

誰かが春にこれを以前にやったことがありますか。私はオプション2を使用していますが、これを行うためのより良い方法はありますか?専門家のアドバイスが必要です。みんな、ありがとう !

詳細-このRESTAPIはフロントエンドのRoRアプリによって使用されるため、同期ロギングはボトルネックになると思います。したがって、ユーザーの1回のセッションで、数百のAPI呼び出しが非常に頻繁に発生することは間違いありません。POSTで送信されたJSONとともに実際のリクエストをログに記録しています。

4

2 に答える 2

3

春でこれをやった人はいますか?

それほど奇妙ではありません、はい - Spring を使用した非同期ロギング

この記事では、ログ イベントが失われたくない場合は、JMS を使用することをお勧めします。それ以外の場合は、Async に固執することで、大量のログを記録することができます。

于 2012-04-11T12:20:02.267 に答える
0

本当に独自のロガーを構築したい場合は、akkaを参照することをお勧めします。JMS よりもセットアップがはるかに簡単です。

ローカルで (ローカル マシンのすべての CPU コアを使用して) 使用することも、リモート エージェントで使用することもできます。

于 2012-04-11T08:28:02.850 に答える