Soul總結02
- Soul 回顧
- 架構
- 識訓與展望
- 識訓
- 展望
Soul 回顧
Soul 是一個基于 Netty 的、反應式編程的、支持多種RPC請求型別的、高性能的、插件化的、動態配置的、支持多種流量控制手段的網關,Soul 靈活的配置以及豐富的插件,可以提供很多開箱即用的能力,
- 支持各種語言(http協議),支持 dubbo,springcloud協議,
- 插件化設計思想,插件熱插拔,易擴展,
- 靈活的流量篩選,能滿足各種流量控制,
- 內置豐富的插件支持,鑒權,限流,熔斷,防火墻等等,
- 流量配置動態化,性能極高,網關消耗在 1~2ms,
- 支持集群部署,支持 A/B Test,藍綠發布,
架構
通過近一個月,對 Soul 網關原始碼的研究,回過頭來,再來看 Soul 的架構圖,
- Soul-Admin 主要負責管理插件和配置流量控制的規則,配置資料會通過 http 長輪詢、websocket、zookeeper、nacos 等多種方式同步給 Soul-bootstrap,
- 請求到達網關后,會經過插件鏈,匹配到對應的插件后,請求會被插件進行一系列的處理,如防火墻、驗證簽名、限流、過濾、容錯處理、請求重寫等等,

識訓與展望
識訓
- 插件化的設計思想,可以方便的增加功能,代碼的可擴展性非常強,
- 新接觸到了一些新的 RPC 協議,如 tars 協議、sofa 協議
- 學習到了好的設計思路,如 通過 websocket 等方式同步資料,可以解耦系統;插件責任鏈的編程思想,使得整個呼叫鏈路清晰,可擴展性強;恰當的利用本地記憶體和集中式記憶體來快取資料,提高系統性能,
- 接觸到了好的編程范式,如反應式編程( WebFlux )、異步編程(Servlet 3.0 異步回應機制)
- 閱讀原始碼的方式方法以及能力上升了一個臺階
展望
- Soul 中一些具體的編碼技巧,還有待深挖
- Soul 的性能,后面可以想辦法進行壓測
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/257428.html
標籤:其他
上一篇:小程式底層架構
