soul网关简介
soul 是基于 WebFlux 实现的响应式的开源API 网关(源码链接),具有异步、高性能、跨语言等特点。
作者:我希望能够有一样东西像灵魂一样,保护您的微服务。在参考了 Kong、Spring Cloud Gateway 等优秀的网关后,站在巨人的肩膀上,Soul 由此诞生!
目前 soul 功能列表如下:
支持各种语言,无缝集成到 Dubbo、Spring Cloud、Spring Boot 中。
Soul 是极其少支持 Dubbo 的 API 网关,通过 Dubbo 泛化调用 实现。
丰富的插件支持,鉴权,限流,熔断,防火墙等等。
网关多种规则动态配置,支持各种策略配置。
插件热插拔,易扩展。
支持集群部署,支持 A/B Test。
整体架构如下图所示:
编译
从soul工程根目录执行如下命令:
# mvn clean
# mvn install
再次强调,从根模块进行编译,而不是进入子模块进行编译,否则由于模块间依赖关系会导致编译失败。
安装
安装MySql
步骤从略(本人使用阿里云ECS,之前安装了mysql 5.7.32),然后创建数据库soul。
安装soul-admin
上传前面编译出来的soul-admin.jar,输入如下命令启动:
# nohup java -jar soul-admin.jar --spring.datasource.url="jdbc:mysql://127.0.0.1:3306/soul?useUnicode=true&characterEncoding=utf-8&failOverReadOnly=false&autoReconnect=true&useSSL=false" --spring.datasource.username='root' --spring.datasource.password='xxxxxx' &
启动时注意spring.datasource.url一坨参数如果不对可能会导致出问题,要看具体异常情况。
接着,浏览器输入 http://127.0.0.1:9095,如果出现以下界面,则表示前端启动成功。
目前无法登录,浏览器F12提示如下错误,后台未看到日志,前端一直在打转,暂未处理。
安装soul-bootstrap
上传前面编译的soul-bootstrap.jar,输入如下命令启动:
# nohup java -jar soul-bootstrap.jar --soul.sync.websocket.url="ws://localhost:9095/websocket" &
执行:
# curl http://127.0.0.1:9195/
若返回以下信息,则bootstrap启动成功:
{
"code": -107,
"message": "未能匹配选择器,请检查你的选择器配置!",
"data": null
}
疑惑
mvn -U eclipse:eclipse这条命令干嘛用?
参考内容