阿里巴巴出品基於 Netty 的網絡通信框架 SOFABolt

SOFABolt 是螞蟻金融服務集團開發的一套基於 Netty 實現的網絡通信框架。

  • 為了讓 Java 程序員能將更多的精力放在基於網絡通信的業務邏輯實現上,而不是過多的糾結於網絡底層 NIO 的實現以及處理難以調試的網絡問題,Netty 應運而生。
  • 為了讓中間件開發者能將更多的精力放在產品功能特性實現上,而不是重複地一遍遍製造通信框架的輪子,SOFABolt 應運而生。

Bolt 名字取自迪士尼動畫-閃電狗,是一個基於 Netty 最佳實踐的輕量、易用、高性能、易擴展的通信框架。 這些年我們在微服務與消息中間件在網絡通信上解決過很多問題,積累了很多經驗,並持續的進行著優化和完善,我們希望能把總結出的解決方案沉澱到 SOFABolt 這個基礎組件裡,讓更多的使用網絡通信的場景能夠統一受益。 目前該產品已經運用在了螞蟻中間件的微服務 (SOFARPC)、消息中心、分佈式事務、分佈式開關、以及配置中心等眾多產品上。

功能介紹

阿里巴巴出品基於 Netty 的網絡通信框架 SOFABolt

SOFABolt 的基礎功能包括:

  • 基礎通信功能 ( remoting-core )
  • 基於 Netty 高效的網絡 IO 與線程模型運用
  • 連接管理 (無鎖建連,定時斷鏈,自動重連)
  • 基礎通信模型 ( oneway,sync,future,callback )
  • 超時控制
  • 批量解包與批量提交處理器
  • 心跳與 IDLE 事件處理
  • 協議框架 ( protocol-skeleton )
  • 命令與命令處理器
  • 編解碼處理器
  • 心跳觸發器
  • 私有協議定製實現 - RPC 通信協議 ( protocol-implementation )
  • RPC 通信協議的設計
  • 靈活的反序列化時機控制
  • 請求處理超時 FailFast 機制
  • 用戶請求處理器 ( UserProcessor )
  • 雙工通信


分享到:


相關文章: