美文网首页
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