Soul 网关探索(一)基本介绍 & 环境配置

背景:

自从上次立了一个flag(以后要如何更好地输出博客)后,到今天居然快整整一年没写过博客了!这flag实在威力太大…[捂脸]

2020年我们经历了新冠病毒这个黑天鹅事件,我也离开了呆了两年半的前东家,跳槽到了一家我还比较满意的互联网公司,对自己的职业生涯规划有了新的思考,同时也更深刻认识到了自己的不足,需要我去弥补追赶的还有好多好多…(针对这个我有空可以写一篇博客分享 ~)

作为曾经萌生过转产品念头的佛系技术人,我越发坚定了在技术道路上继续探索下去的决心,从今天开始我准备重操旧业,开始输出博客!最近在和一群小伙伴一起学习soul网关,就把这个当成2021年的第一个系列博客吧 ~



一、基本介绍

soul是一个基于WebFlux实现的响应式API网关,具有异步、高性能、跨语言等特点。

官网:https://dromara.org/zh-cn/docs/soul/soul.html


名称由来:

作者希望能够有一样东西像灵魂一样,保护我们的的微服务~


实现参考:

soul的实现参考了Kong、Spring-Cloud-Gateway等优秀的网关,诞生在巨人的肩膀上。


特性:

  1. 支持各种语言(http协议),支持 dubbo,springcloud协议。
  2. 插件化设计思想,插件热插拔,易扩展。
  3. 灵活的流量筛选,能满足各种流量控制。
  4. 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
  5. 流量配置动态化,性能极高,网关消耗在 1~2ms。
  6. 支持集群部署,支持 A/B Test, 蓝绿发布。

架构图:

图片

二、代码编译

GitHub地址:https://github.com/dromara/soul

注意,如果从GitHub clone速度较慢,可以使用chrome插件加速:

图片
图片

或者使用gitee代替:https://gitee.com/shuaiqiyu/soul

编译命令:

mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true

编译时最好选择阿里云的maven镜像源:

<mirrors>
     <mirror>
	  <id>nexus-aliyun</id>
	  <mirrorOf>*,!jeecg,!jeecg-snapshots,!mapr-releases</mirrorOf>
	  <name>Nexus aliyun</name>
	  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
	</mirror>
	<mirror>
	  <id>mapr-public</id>
	  <mirrorOf>mapr-releases</mirrorOf>
	  <name>mapr-releases</name>
	  <url>https://maven.aliyun.com/repository/mapr-public</url>
	</mirror>
  </mirrors>

如果编译失败不要着急,重新多次执行编译命令大概率能成功。


三、项目初探索

项目结构:

  1. soul-admin : Web后台配置管理(这也是soul用户体验领先一般网关项目的地方~)
  2. soul-bootstrap : 项目启动入口
  3. soul-client : 支持 Spring MVC,Dubbo,Spring Cloud 等多类型客户端访问
  4. soul-common : 项目基础模块,主要是配置、枚举、实体类、工具类等
  5. soul-dist : 用于构建项目,打包发布
  6. soul-metrics : 监控metrics相关,比如prometheus等
  7. soul-plugin : 支持多种插件(核心模块)
  8. soul-register-center:配置注册中心相关,支持api、http、zk方式
  9. soul-spi : 定义spi基础组件
  10. soul-spring-boot-starter : 支持 spring boot starter接入
  11. soul-sync-data-center : 提供 zk、http、websocket,nacos等方式同步数据
  12. soul-examples : 示例项目
  13. soul-web : 包括插件、请求路由和转发等的核心处理包以及一些web配置

启动后台管理系统(soul-admin)

由于后台管理系统需要依赖数据库表(自动创建),所以先要修改数据库配置:

建表语句地址:

soul-admin\src\main\resources\META-INF\schema.sql

配置文件地址:

soul-admin\src\main\resources\application.yml

图片
然后启动soul-admin模块:

org.dromara.soul.admin.SoulAdminBootstrap

图片
运行成功后可以发现自己的mysql成功创建soul数据库。


访问后台管理系统web页面:

默认访问地址:http://localhost:9095/

图片

图片

我们现在就可以愉快地感受一下soul的基本功能啦 ~


后续会将系列文章整理好一起发出来,打磨成一个精品系列!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值