1.环境准备
如何调试项目中的源代码嗯?首先我们要明白要调试的项目是一个什么项目?比如soul就是一个网关,基于插件的,OK,那就很明确方向了,接下来我们clone下代码这里一般建议拉取到自己的仓库中。
介绍一下soul
是一个异步、高性能的、跨语言
接下来详细的调试一下
soul的整体项目结构

soul-spring-boot-starter:启动器
打开插件模块中可以看到

soul-plugin-alibaba-dubbo:阿里巴巴的doubbo插件
soul-plugin-apache-dubbo:apache的dubbo插件
soul-plugin-api:
soul-plugin-base:基础的工具类和策略
soul-plugin-context-path
soul-plugin-divide:divide插件是网关处理 http协议 请求的核心处理插件
soul-plgin-global
soul-plugin-httpclient:对http的代理插件
soul-plugin-hystrix:hystrix插件是网关用来对流量进行熔断的核心实现
soul-plugin-monitor:
soul-plugin-ratelimiter:限流插件,是网关对流量管控限制核心的实现
soul-plugin-resilience4j:resilience4j插件是网关用来对流量进行限流宇熔断的可选选择之一
soul-plugin-rewrite:soul网关在对目标服务进行代理调用的时候,还容许用户使用 rewrite插件来重写请请求路径
soul-plugin-sentinel:sentinel插件是网关用来对流量进行限流宇熔断的可选选择之一;为网关熔断限流提供能力
soul-plugin-sign:网关自带的,用来对请求进行签名验证的插件
soul-plugin-sofa:sofa插件是讲http协议转为sofa协议的插件,也是网关实现sofa泛化调用的关键
soul-plugin-springcloud:springcloud插件
soul-plugin-tars:
soul-plugin-waf:是网关的用来对流量实现防火墙功能的核心实现
以上资料来自soul官网文档介绍
2.启动项目
soul-admin启动后台服务需要启动zk
浏览器访问:http://localhost:9095/
用户名:admin
密码:123456
数据加载是数据库中的 plugin
soul-bootstrap启动网关服务
可以从控制台上看到很多有用的信息


从 SoulConfiguratin这个类中加载所有的插件(通过加载的方式加载的)

WebsocketSyncDataConfiguration
websocket sync soul data
WebsocketSyncDataService
websocket connection is successful
附加一个后台日志

websocket on open successful....
加载的调用关系:

至此项目已经启动完毕,简单总结下:soul网关是一个异步,高性能,响应式基于插件的网关
特点:
支持各种协议
可插拔
流控灵活
配置动态化
支持集群部署
架构图:

470

被折叠的 条评论
为什么被折叠?



