首先來聊聊往事吧~~兩年前就職于一家傳統(tǒng)金融軟件公司,為某交易所開發(fā)一套大型交易系統(tǒng),交易標(biāo)的的價格為流式數(shù)據(jù),采用價格觸發(fā)成交方式,T+0交易制度(類似炒股,只是炒的不是股票而是其他標(biāo)的物,但可以隨時開平倉)。鑒于系統(tǒng)需要記錄大量價格數(shù)據(jù)、交易信息及訂單流水,且系統(tǒng)對性能要求極高(敏感度達(dá)毫秒級),因此需要避免日志服務(wù)成為系統(tǒng)性能瓶頸。通過對幾個通用型日志(如log4j、logback)的性能壓測,以及考慮到它們作為通用型日志相對比較臃腫,就決定自個兒寫個日志工具以支撐系統(tǒng)功能和性能所需。當(dāng)時的做法只是簡單的將日志的實現(xiàn)作為一個 util 類寫在項目中,只有幾百行的代碼量。

系統(tǒng)上線兩個月后日均成交額200億RMB,最高達(dá)440億RMB,峰值成交4000筆/秒。系統(tǒng)非常龐大,但幾百行的代碼卻完美支撐住了重要的日志服務(wù)!

鑒于其優(yōu)秀的表現(xiàn),就花了一點點時間把它抽取出來作為一個獨立的日志組件,取名叫 FLogger,代碼幾乎沒有改動,現(xiàn)已托管到GitHub(FLogger),有興趣的童鞋可以clone下來了解并改進(jìn),目前它的實現(xiàn)是非常簡(純)單(粹)的。

以上就是 FLogger 的誕生背景。好吧,下面進(jìn)入正題。

特性

雖然 FLogger 只有幾百行的代碼,但是麻雀雖小五臟俱全,它可是擁有非常豐富的特性呢:

  • 雙緩沖隊列

  • 多種刷盤機制,支持時間觸發(fā)、緩存大小觸發(fā)、服務(wù)關(guān)閉強制觸發(fā)等刷盤方式

  • 多種 RollingFile 機制,支持文件大小觸發(fā)、按天觸發(fā)等 Rolling 方式

  • 多日志級別,支持 debug、info、warn、error和 fatal 等日志級別

  • 熱加載,由日志事件觸發(fā)熱加載

  • 超輕量,不依賴任何第三方庫

  • 性能保證,成功用于日交易額百億級交易系統(tǒng)

使用

FLogger 已經(jīng)發(fā)布到 maven 公共倉庫(版本更新信息請點此查看),請?zhí)砑右韵乱蕾嚕ɑ蛑苯釉陧椖恐幸?jar 包):

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式

我想了解如何學(xué)習(xí)

姓名:
手機:
留言:
 
    <div id="sluk2"></div>