目标搭建 soul 网关源码环境
编译代码,运行soul-admin、soul-bootstrap
简介
Soul 是基于 WebFlux 实现的响应式的 API 网关,具有异步、高性能、跨语言等特点。
功能特点:支持各种语言(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 网关环境搭建完成。