本地代码编译
-
github上访问soul的代码仓库 : https://github.com/dromara/soul
-
fork 到自己的仓库
-
将代码pull到本地
-
使用 mvn clean package install -Dmaven.test.skip=true -Drat.skip=true -Dcheckstyle.skip=true 命令本地打包编译
-
项目编译后就可以愉快的本地开始调试运行代码了
soul的特性接下来需要关注的问题
-
支持各种语言(http协议),支持 dubbo,springcloud协议。
- 之后学习关注下不同协议的实现细节,以及通过什么方式来支持的?
-
插件化设计思想,插件热插拔,易扩展。
- 如何实现插件化?如何做到热插拔?
-
灵活的流量筛选,能满足各种流量控制。
- 是怎么做的流量控制?是如何控制的?
-
内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
- 支持哪些插件?如何支持的?
-
流量配置动态化,性能极高,网关消耗在 1~2ms。
- 如何动态化配置?为什么性能很高?如何实现的?
-
支持集群部署,支持 A/B Test, 蓝绿发布。
- 如何做的A/B Test
soul的整体架构图:

soul单机部署 简单架构图:

soul单机部署 dubbo 简单架构图:

soul单机部署 springboot简单架构图:

soul单机部署 spring cloud简单架构图:

网友评论