美文网首页
soul从入门到放弃1--项目搭建

soul从入门到放弃1--项目搭建

作者: 滴流乱转的小胖子 | 来源:发表于2021-01-14 16:23 被阅读0次

零、概述

用于工作、学习的需要开始学习soul,希望能坚持下去,不像专栏的名字一样 ------ soul从入门到放弃

本篇导读:网关的基本概念、soul主要架构、环境的基本搭建

一、基本概念

什么是api网关(服务网关)?

服务网关 = 路由转发 + 过滤器

  • 路由转发:接收所有外界请求,根据路由配置,转发到微服务上
  • 过滤器:可以完成一系列的横切功能,如:限流、监控、权限校验等

以上这些功能本质上都是通过过滤器实现的

什么是soul?

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

soul的主要功能

  • 支持各种语言(http协议),支持 dubbo,springcloud协议。
  • 插件化设计思想,插件热插拔,易扩展。

插件的热插拔,规则的动态配置。
举个列子,比如一个接口你限流是1秒50次,但是你想调小点,像Springcloud-gateway 或者zuul 是不是还得改动配置 然后重启。 soul则不需要,直接在soul-admin找到对应的接口修改即可.</pre>

  • 灵活的流量筛选,能满足各种流量控制。
  • 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
  • 流量配置动态化,性能极高,网关消耗在 1~2ms。
  • 支持集群部署,支持 A/B Test, 蓝绿发布。

架构图

image image

此图绿色部分为客户端,按照网关要求的数据格式来请求网关服务。

soul的底层是webflux,如果soul是集群部署的话,可以开启nginx,来反向代理网关服务。

Soul-admin

是soul的控制台,负责管理插件插拔,选择器的配置,规则的配置。将数据写入mysql中,同时基于SPI(HTTP、Zookeeper、Websocket三种之一),实现数据同步机制(后续篇章会详解)。

Soul Cluster

soul启动后,会根据数据同步机制,拉去远端相关配置信息至本地,写入本地JVM,然后开启监听,来动态更新JVM中的数据,

Plugins--Handler

基于插件责任链模式的执行流程,每个插件各司其职。插件是根据用户在soul-admin配置网关请求数据,规则,来执行具体逻辑。

二、环境搭建

依赖工具:朴实无华的工具,降低网关引入门槛

JDK 1.8+

Maven 3.2.x

Git

mysql 5.x :温馨提醒,轻易不要尝试mysql 8

克隆代码

giee:git clone https://gitee.com/shuaiqiyu/soul.git --depth=1

github:git clone https://gitee.com/shuaiqiyu/soul.git --depth=1

关于: depth

  • 用 git clone --depth=1 的好处是限制 clone 的深度,不会下载 Git 协作的历史记录,这样可以大大加快克隆的速度
  • depth用于指定克隆深度,为1即表示只克隆最近一次commit
  • 适合用 git clone --depth=1 的场景:你只是想clone最新版本来使用或学习,而不是参与整个项目的开发工作

maven编译

可以skip一些,提升运行效率

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

修改配置及启动

soul-admin

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

image

修改mysql的配置项目,之后 启动项目即可。

项目启动会类LocalDataSourceLoader,会执行schema.sql脚本,自动创建库、表、相关初始化数据。

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

用户名:admin 密码:123456


image.png
各种插件

soul-bootstrap

基本不需要修改,只要注意与后台连接地址一致即可

image

访问地址:http://localhost:9195/

三、心得总结

环境搭建的过程,复习很多maven与git上的使用小技巧

本篇幅讲了soul的大致架构,对分布式系统的交互有了新的理解,下一篇将撸起胳膊开始最简单的http接口测试

靡不有初,鲜克有终。希望自己能坚持写完这个系列

相关文章

网友评论

      本文标题:soul从入门到放弃1--项目搭建

      本文链接:https://www.haomeiwen.com/subject/gesvaktx.html