Soul环境准备
soul介绍
- soul是一个异步的,高性能的,跨语言的,响应式的API网关。其设计参考了Kong, Spring-Cloud-Gateway等优秀网关
- 特征
- 支持各种语言(http协议),支持 dubbo,springcloud协议。
- 插件化设计思想,插件热插拔,易扩展。
- 灵活的流量筛选,能满足各种流量控制。
- 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
- 流量配置动态化,性能极高,网关消耗在 1~2ms。
- 支持集群部署,支持 A/B Test, 蓝绿发布。
- 官网地址
搭建网关环境
- 首先到github上clone soul的代码,这里是地址,顺手可以star, fork, watch三连。
- 在本地执行 git clone https://github.com/dromara/soul.git 或者用idea去把代码clone下来
- 等maven依赖下完之后,执行 mvn clean package install -Dmaven.test.skip=ture -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true 等编译完成
- 如果编译不通过,可以多试两次,有可能网络的原因会失败,成功之后就可以愉快的的玩耍了
运行
- 运行soul-admin,这是soul后台管理项目,可以在这里管理支持的插件相关操作,直接在线修改配置
- 找到项目下的application.yml文件,(注意我这里用的是h2内存数据库,在没有装mysql的情况下运行),把以下代码注释掉soul下
database: dialect: mysql init_script: "META-INF/schema.sql"
spring下datasource: url: jdbc:mysql://localhost:3306/soul?useUnicode=true&characterEncoding=utf-8 username: root password: driver-class-name: com.mysql.jdbc.Driver
把spring下的这段配置打开profiles: active: h2
然后就用springboot的方式启动了 - 用mysql的方式运行,只需要把spring中datasource下地址、用户名、密码改成本机的就可以运行了
- admin可以用 http://localhost:9095 访问,默认的用户名:admin, 密码:123456
- soul-bootstrap应该不用改动什么东西,就可以直接启动。bootstrap是soul核心项目,启动后可以访问 http://localhost:9195 访问
总结
万事开关难,先把项目clone下来跑通,然后再一步步分析源码。下一篇就开始准备分析总体的架构了。