SOFABolt 是螞蟻金融服務集團開發的一套基於 Netty 實現的網絡通信框架。
- 為了讓 Java 程序員能將更多的精力放在基於網絡通信的業務邏輯實現上,而不是過多的糾結於網絡底層 NIO 的實現以及處理難以調試的網絡問題,Netty 應運而生。
- 為了讓中間件開發者能將更多的精力放在產品功能特性實現上,而不是重複地一遍遍製造通信框架的輪子,SOFABolt 應運而生。
Bolt 名字取自迪士尼動畫-閃電狗,是一個基於 Netty 最佳實踐的輕量、易用、高性能、易擴展的通信框架。 這些年我們在微服務與消息中間件在網絡通信上解決過很多問題,積累了很多經驗,並持續的進行著優化和完善,我們希望能把總結出的解決方案沉澱到 SOFABolt 這個基礎組件裡,讓更多的使用網絡通信的場景能夠統一受益。 目前該產品已經運用在了螞蟻中間件的微服務 (SOFARPC)、消息中心、分佈式事務、分佈式開關、以及配置中心等眾多產品上。
功能介紹
SOFABolt 的基礎功能包括:
- 基礎通信功能 ( remoting-core )
- 基於 Netty 高效的網絡 IO 與線程模型運用
- 連接管理 (無鎖建連,定時斷鏈,自動重連)
- 基礎通信模型 ( oneway,sync,future,callback )
- 超時控制
- 批量解包與批量提交處理器
- 心跳與 IDLE 事件處理
- 協議框架 ( protocol-skeleton )
- 命令與命令處理器
- 編解碼處理器
- 心跳觸發器
- 私有協議定製實現 - RPC 通信協議 ( protocol-implementation )
- RPC 通信協議的設計
- 靈活的反序列化時機控制
- 請求處理超時 FailFast 機制
- 用戶請求處理器 ( UserProcessor )
- 雙工通信
閱讀更多 程序員界的彭于晏 的文章