Soul网关(十九)总结02

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。
  • 请求到达网关后,会经过插件链,匹配到对应的插件后,请求会被插件进行一系列的处理,如防火墙、验证签名、限流、过滤、容错处理、请求重写等等。

Soul网关(十九)总结02_第1张图片

收获与展望

收获

  • 插件化的设计思想。可以方便的增加功能,代码的可扩展性非常强。
  • 新接触到了一些新的 RPC 协议。如 tars 协议、sofa 协议
  • 学习到了好的设计思路。如 通过 websocket 等方式同步数据,可以解耦系统;插件责任链的编程思想,使得整个调用链路清晰,可扩展性强;恰当的利用本地内存和集中式内存来缓存数据,提高系统性能。
  • 接触到了好的编程范式。如反应式编程( WebFlux )、异步编程(Servlet 3.0 异步响应机制)
  • 阅读源码的方式方法以及能力上升了一个台阶

展望

  • Soul 中一些具体的编码技巧,还有待深挖
  • Soul 的性能,后面可以想办法进行压测

你可能感兴趣的:(Soul,网关源码)