開源!非凸Rust高效能日誌庫ftlog
日誌是應用程式的重要組成部分,無論是服務端程式還是客戶端程式,都需要日誌作為錯誤輸出或業務記錄。非凸 Rust 高效能日誌庫 ftlog ,支援“受限寫入”以及“時間分割”等功能,具備顯著的效能優勢。
一、 ftlog 與普通日誌 , 有何不同 ?
普通日誌庫受到磁碟 IO 和系統 P ipe 的 影響 , 單執行緒順序寫入單條速度大概要 2500ns ( SSD ),如果碰到 IO 抖動或者慢磁碟,日誌會是低 延遲 交易的主要瓶頸。 而非凸科技開源的 R ust 高效能日誌庫 ftlog v0.1.0 , 先把日誌 S end 到 C hannel , 再啟動後臺單獨執行緒 R ecv , 且磁碟寫入,測試速度在 300ns 左右 。
值得注意的是 , ftlog 與 R ust 的 log 生態不相容,建議刪除掉原來的日誌庫。特別是 不 要 讓兩個日誌庫匯出到同一個地方,否則兩個日誌生態會同時列印,導致日誌不可讀。
低延遲交易 , 要求整個交易鏈條上的所有環節 , 都儘量縮短時間間隔 。 而非凸日誌庫 ft log 在速度上更快 , 可實現更低的延遲 。
過去 , 金融證券領域的高效能一般指的是高吞吐量 , 滿足一定的延遲要求 。 但隨著機構交易佔比的逐漸提升 , 他們對延遲的要求也越來越高 。 對券商來說 , 誰能在延遲上取得最低 , 誰就可以掌握客戶 。
二 、 在開源上 , 不斷髮力
R ust 作為一門備受關注的新程式語言 , 它在保證記憶體安全的同時 , 還能實現不亞於 C /C++ 等語言的效能 。 非凸科技選擇 R ust , 最主要的原因是 R ust 的高效能 、 高安全和可靠性與低延遲交易的核心需求高度匹配 。 在引擎層面 ,R ust 具有可靠的安全性和穩定性 ; 在資料接入層面 ,R ust 足夠底層 , 可以做到更多其他語言難以做到的事 。
此外 , 對於企業級專案的開發 , 採用 R ust 更能保證程式的穩定性 。 對於高併發和低延遲部分 ,R ust 相關的成熟庫還不多 , 需要企業級的打磨才能更可靠 。 對此 , 非凸科技將在開源專案上不斷髮力 , 攻堅更多核心技術 。
做真正自研的技術 , 尤其是基礎軟體和核心底層技術 。 非凸科技希望透過開源 , 與廣大開發者 、 行業夥伴 、 客戶 , 攜手推進 R ust 在低延遲交易領域的開發 、 應用和落地 , 加速推動國產基礎軟體的繁榮和發展 。
非凸科技計劃在 ftlog v0.2.0 版本遷回官方 log , 並加入 target 支援 , 歡迎大家的建議 、 交流和探討 。
程式碼開源地址 :
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70008913/viewspace-2921312/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開源高效能結構化日誌模組NanoLogNaN
- rust常用開源庫Rust
- Zap 高效能日誌庫實踐
- go開發屬於自己的日誌庫-日誌庫優化Go優化
- 高效能 Go 日誌庫 zap 設計與實現Go
- .NET 開源高效能 MQTT 類庫MQQT
- 最好用的開源日誌分析工具
- go開發屬於自己的日誌庫-檔案日誌庫實現Go
- Rust 實現日誌記錄功能Rust
- go 開發屬於自己的日誌庫-檔案日誌庫原型實現Go原型
- Logan:美團點評的開源移動端基礎日誌庫
- 5 個有用的開源日誌分析工具
- GoAccess 開源日誌輕工具部署與分析Go
- 開源日誌框架TNT4J · GitHub框架Github
- Rust 日誌系統實踐總結Rust
- 非易失性WAL BUFFER實現機制解析:日誌源切換
- 開源資料庫流行度首次超過非開源資料庫Confluent資料庫
- Android 高效能日誌寫入方案Android
- 開源元件ELK日誌系統配置與管理元件
- 5款Java開源日誌框架大比拼Java框架
- 我開源的Android日誌收集器Android
- Rust中如何使用log4rs日誌?Rust
- 位元組開源RPC框架Kitex的日誌庫klog原始碼解讀RPC框架原始碼
- 用SeasLog打造PHP高效能日誌元件PHP元件
- 比較開源日誌:Logstash、FluentD 和 Fluent Bit
- 招聘|歡迎加入非凸,學習Rust,瞭解記憶體和執行緒安全問題Rust記憶體執行緒
- 丟失非活動日誌組的恢復
- 日誌開篇
- 如何將rust日誌輸出到android終端RustAndroid
- 用Rust編寫的資料庫GreptimeDB現開源Rust資料庫
- Data Guard備庫日誌的實時應用與非實時應用
- 開啟關閉oracle資料庫附加日誌Oracle資料庫
- 如何開關資料庫告警日誌及修改日誌級別資料庫
- Golang一日一庫之 日誌庫 zapGolang
- Go日誌管理庫zapGo
- 用B庫挖掘A庫的日誌
- 開源日誌記錄元件Log4Net的使用元件
- Go中使用Zap日誌庫與Lumberjack日誌切割Go