0.soul简介
soul是什么
soul是一个异步的,高性能的,跨语言的,响应式的API网关。
特性
- 支持各种语言(http协议),支持 dubbo,springcloud协议。
- 插件化设计思想,插件热插拔,易扩展。
- 灵活的流量筛选,能满足各种流量控制。
- 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
- 流量配置动态化,性能极高,网关消耗在 1~2ms。
- 支持集群部署,支持 A/B Test, 蓝绿发布。
架构图
1.下载soul项目
从github上clone项目
地址:https://github.com/dromara/soul
下载完成后倒入idea中
注: soul-example 为官方实例代码,可以另开一个idea窗口倒入,或者在 soul-example目录下的 pom.xml右键 add as maven project 倒入,否则 soul-example 不会被识别。
使用maven编译项目
如果编译时间较长可以使用命令行跳过非必要编译的项目
mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
2.运行项目
运行 soul-admin
创建数据库 将/resource/META_INF/schema.sql 的sql语句执行,创建sou-admin需要的表
修改soul-admin项目的数据源配置
然后启动项目就可以了, 默认端口是9095,默认密码是 admin/1234556
运行 soul-bootstarp
默认直接运行就可以,启动后会连接到 soul-admin,可以自己更改soul-admin的地址
如果正常连接到soul-admin上可以在soul-admin的控制台看见log
3.divide 插件测试
启动soul-example-http
通过直接访问的方式访问实例接口
启动example后会发现example中的接口会自动注册到 soul-admin上
测试网关
(直接访问网关即可将请求代理到真实服务地址)
参考地址
官方文档https://dromara.org/zh-cn/docs/soul/soul.html
极简入门 http://www.iocoder.cn/Soul/install/
divide文档https://github.com/dromara/soul/blob/master/doc/plugin-divide