目标
- 搭建 soul 网关源码环境
- 编译代码,运行soul-admin、soul-bootstrap
简介
Soul 是基于 WebFlux 实现的响应式的 API 网关,具有异步、高性能、跨语言等特点。
soul 官网:https://dromara.org/zh-cn/doc...
功能特点:
- 支持各种语言(http协议),支持 dubbo,springcloud协议。
- 插件化设计思想,插件热插拔,易扩展。
- 灵活的流量筛选,能满足各种流量控制。
- 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
- 流量配置动态化,性能极高,网关消耗在 1~2ms。
- 支持集群部署,支持 A/B Test, 蓝绿发布。
架构图:
准备工作
运行环境
Idea 、maven、jdk1.8+、mysql5.x+
拉取代码
一键三连 soul网关,将 fork 到自己仓库的代码 clone 到本地
git clone git@github.com:zhu-rundong/soul.git
模块:
- soul-admin : 插件和其他信息配置的管理后台
- soul-bootstrap : 用于启动项目,用户可以参考
- soul-client : 用户可以使用 Spring MVC,Dubbo,Spring Cloud 快速访问
- soul-common : 框架的通用类
- soul-dist : 构建项目
- soul-metrics : prometheus(普罗米修斯)实现的 metrics
- soul-plugin : Soul 支持的插件集合
- soul-spi : 定义 Soul spi
- soul-spring-boot-starter : 支持 spring boot starter
- soul-sync-data-center : 提供 ZooKeeper,HTTP,WebSocket,Nacos 的方式同步数据
- soul-examples : RPC 示例项目
- soul-web : 包括插件、请求路由和转发等的核心处理包
编译
idea 导入 soul 源码,在 Terminal 控制端进入 soul 目录
cd soul
mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
启动
修改 soul-admin 下 application.yml 中 mysql 配置
datasource:
url: jdbc:mysql://localhost:3306/soul?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: admin
driver-class-name: com.mysql.jdbc.Driver
启动 SoulAdminBootstrap、SoulBootstrapApplication,在启动过程中,soul 会自动创建名称为 soul 的数据库及相关表
访问地址:http://localhost:9095/,默认 Account/Password: admin/123456
登录:
至此,Soul 网关环境搭建完成。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。