Soul网关第1天:搭建环境和运行

1,956 阅读2分钟

一、获取代码

1、github 一键三连 star、watch、fort 后 git clone,github 地址:github.com/dromara/sou…

2、保持自己的 fork 仓库和源仓库 master 分支代码同步命令

git remote -v
# 添加 upstream 地址
git remote add upstream https://github.com/dromara/soul.git
# 拉起 upstream 代码
git fetch upstream
# 更新 orign/master 代码
git checkout master
git merge upstream/master
git push origin master

额外的一些命令

# 删除仓库
git remote rm 
# 添加
git remote add ${远程仓库名} ${远程仓库地址}

使用 git remote -v 可以查看到 origin 和 upstream 信息。

二、运行代码

官网简介:Soul 是基于 WebFlux 实现的响应式的 API 网关,具有异步、高性能、跨语言等特点。所以 Soul 是基于 Spring 的项目,先运行两个模块。

打包命令

mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
  • soul-admin : 网关管理后台

  • soul-bootstrap : 网关启动入口

两个模块在官网架构图中的位置

1、启动 soul-admin

soul 后台管理系统数据持久化依赖 MySQL,所以要先安装 MySQL(最新的代码中已经支持 H2 做测试使用), 然后在 soul-admin 模块下的配置文件 application.yml 中加上MySQL数据库配置信息,启动项目。

第一次启动时会根据项目中的 SQL 语句创建库表和数据,可以浏览一下创建了哪些表。

只有 rule 表有 name 的唯一索引,推测这些表的数据量不会太大。

打开后台管理系统,地址:http://localhost:9095/ ,默认账号和密码:admin 123456 ,随便点一点瞧一瞧。

  • 插件列表:对网关接入的流量进行链式处理,链上逻辑插件化。这些插件也基本代表着 Soul 网关能接入的流量协议有哪些、提供哪些处理功能。

  • 系统配置:只看懂插件控制(控制插件开启),后续学完补上。

2、启动 soul-bootstrap

启动了 Soul 网关服务,是一个 Spring Cloud 项目。

网关要求高性能,网关规则等数据不可能靠每次去数据库查询,就需要每个网关节点缓存 soul-admin 配置在 MySQL 中的数据,所以在 soul-bootstrap 模块的配置文件中看到了数据同步的四种时间方式,默认使用websocket,其他三种注释掉了。

大体上三类数据同步方式:

  • websocket:长链接
  • http:轮训
  • 注册中心:zookeeper、nacos