Soul源码分析--模块介绍
soul 项目下面有多个子模块,现在来看一下各个子模块的作用,soul 的整体模块如下图。模块比较多,先挑几个主要的介绍一下,其它的后面再慢慢补充
- soul-admin 网关管理后台,负责插件、规则数据动态的维护,修改后可以通过 websocket、http、zookeeper、nacos 等方式同步数据到 sou-boostrap 网关
- soul-boostrap 真正的网关项目,规则数据通过 soul-admin 网关管理后台同步,里面的实现也很简单,基于Netty做为底层框架来响应请求
- soul-client 项目的作用是用来标识哪些请求来访问后端服务时,需要经过网关,比如后端服务采用的是 http 请求,那就只需要把相应的 @Annotation 加到相应的后端服务对应的类或者方法上。支持的注释有:
- http - SoulSpringMvcClient、SoulSpringCloudClient
- dubbo - SoulDubboClient
- sofa - SoulSofaClient
- tars - SoulTarsClient、SoulTarsService
- soul-common 中是一些通用的配置和常量声明、异常、工具类等
- soul-dist 打包 soul-admin 和 soul-bootstrap 的项目
- soul-examples 常用的一些例子在这个项目里面,现在默认是没有加到模块里面去的,下下来时,要手动在父 pom 文件里