Soul網關(十九)總結02

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 的性能,後面可以想辦法進行壓測
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章