SOUL网关源码分析第一篇--环境

 

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网关是一个异步,高性能,响应式基于插件的网关

特点:

支持各种协议

可插拔

流控灵活

配置动态化

支持集群部署

 

架构图:

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值