概要図は以下の通り.
|fluent-logger-scala| <-- |Serialized JSON over TCP| --> |fluend|
検討事項
- 通信部分のシリアライズ方式について
MessagePack-Scala は以前試したところインストールに失敗したため,JSON を用いる.ライブラリは com.twitter.util.JSON を用いる. - スレッド構成について
fluentd への書き込みは,ネットワークを介するためブロックする可能性がある.ログをとる部分でブロックしてしまうと,アプリケーション性能に大きなインパクトを与えてしまう.この問題を解決するため,送信用 Actor を用意する.fluent-logger-scala をセットアップすると,送信用 Actor(スレッド) が立ち上がる. - バッファ管理について
自前で管理するのはしんどいので,com.twitter.util のリングバッファ(com.twitter.util.RingBuffer.scala)を採用する. - エラー処理について
今のところは指数的にリトライの時間を増やしていく方式をとる. - API
初期バージョンでは, Log.setup, Log.log,Log.close のみを実装する.
No comments:
Post a Comment