简介
soul设计目标
异步的,高性能的,跨语言的,响应式的API网关。
soul特性
- 支持各种语言(http协议),支持 dubbo,springcloud协议。
- 插件化设计思想,插件热插拔,易扩展。
- 灵活的流量筛选,能满足各种流量控制。
- 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
- 流量配置动态化,性能极高,网关消耗在 1~2ms。
- 支持集群部署,支持 A/B Test, 蓝绿发布。
安装前准备
- 安装JDK1.8+(省略)
- 安装mysql(省略)
- 安装maven3.2.x以上版本(省略)
- 需要有github账号,fork官网https://github.com/dromara/soul到自己本地仓库中
git clone [email protected]:xxxx/soul.git
git checkout master
git remote add dromara https://github.com/dromara/soul.git
git branch --set-upstream-to=dromara/master
git fetch
git merge
git push origin
该段命令主要是将fork出的分支在本地关联到远端源码对应分支,可以保持跟远端代码仓库更新一致
- 使用idea打开下载好的soul源码,等待idea自动下载相关依赖包,下载好如图结构
- 使用maven进行编译(跳过单元测试等,加快编译速度)
mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
看到以上输出即代表编译成功
项目启动
启动soul-admin
- 启动之前需要在安装好的mysql中提前建立好soul的schema,并且修改soul-admin项目下application.yml中有关数据库的配置
- 启动SoulAdminBootstrap类后,会自动在数据库生成如下表
- 访问浏览器http://localhost:9095,输入默认用户名和密码admin/123456,进入主页面
启动网关soul-bootstrap
该网关为官方默认提供的网关,可自定义
小结
- 初步搭建好分析soul源码时所需要的环境
- 编译项目时,跳过单元测试等可加快编译速度
- 初步了解soul-admin和soul-bootstrap,至于两者之间的关系及原理待后续分析