Soul 源码阅读(一) 概览


简介

    阅读soul的官方文档,大致了解soul的功能和相关概念

心得

    需要对网关的功能有个大致的了解,把soul官方文档读两遍(第一遍通读,能看懂多少是多少,第二遍参照网关基本概念,整理一下自己所理解的soul相关概念),整理的大致如下:

    大致写过网关Demo应该了解网关的大致组件,如上图的网关版本1和2:

  • server :一个服务端,用于监听请求
  • router :路由匹配,判断请求是否能匹配上后端服务,能匹配上就继续
  • filter :可以进行一些定时,比如简单的增删改查请求和响应的header内容,高阶的如限流、熔断等
  • client :发送请求给后台服务,并得到响应

    读下来,发现Soul的路由匹配规则是动态生成的,一个很关键,很基础的插件就是divide。这些路由的配置保存的地方计时 Soul Admin 这个模块,网关的核心模块还是 Soul Bootstrap,转发合处理还是这个来

    发现Soul Admin 好像还配置了相关 Filter,那可以理解 Soul Admin 为配置中心,可以配置 Router 和 Filter

    大致读下数据同步这部分,知道了Soul这些配置都是可以动态的

    利用类比,将我们之前熟悉的东西套一套,对Soul有个大致的认识即可

    当然,也有可能有些描述和认知是错的,但这些都是正确认识的前提,我们可以在不断的阅读研究中不断更新自己的模型(我目前也没完全搞懂Soul)

    就想现在我们有一张地图,可以有些地方拆迁重建了,但我们还是可以这个地图探索,前往目的地,在探索的过程中,不断地完善我们的地图

Soul 网关源码阅读(一) 概览相关推荐

  1. Soul 网关源码阅读(六)Sofa请求处理概览

    Soul 网关源码阅读(六)Sofa请求处理概览 简介     今天来探索一下Sofa请求处理流程,看看和前面的HTTP.Dubbo有什么异同 Sofa示例运行 PS:如果请求加上参数运行不成功,请更 ...

  2. Soul 网关源码阅读(四)Dubbo请求概览

    Soul 网关源码阅读(四)Dubbo请求概览 简介     本次启动一个dubbo服务示例,初步探索Soul网关源码的Dubbo请求处理流程 示例运行 环境配置     在Soul源码clone下来 ...

  3. Soul网关源码阅读(十)自定义简单插件编写

    Soul网关源码阅读(十)自定义简单插件编写 简介     综合前面所分析的插件处理流程相关知识,此次我们来编写自定义的插件:统计请求在插件链中的经历时长 编写准备     首先我们先探究一下,一个P ...

  4. Soul网关源码阅读(九)插件配置加载初探

    Soul网关源码阅读(九)插件配置加载初探 简介     今日来探索一下插件的初始化,及相关的配置的加载 源码Debug 插件初始化     首先来到我们非常熟悉的插件链调用的类: SoulWebHa ...

  5. Soul网关源码阅读(八)路由匹配初探

    Soul网关源码阅读(八)路由匹配初探 简介      今日看看路由的匹配相关代码,查看HTTP的DividePlugin匹配 示例运行      使用HTTP的示例,运行Soul-Admin,Sou ...

  6. Soul网关源码阅读(七)限流插件初探

    Soul网关源码阅读(七)限流插件初探 简介     前面的文章中对处理流程探索的差不多了,今天来探索下限流插件:resilience4j 示例运行 环境配置     启动下MySQL和redis d ...

  7. Soul网关源码阅读番外篇(一) HTTP参数请求错误

    Soul网关源码阅读番外篇(一) HTTP参数请求错误 共同作者:石立 萧 * 简介     在Soul网关2.2.1版本源码阅读中,遇到了HTTP请求加上参数返回404的错误,此篇文章基于此进行探索 ...

  8. Soul网关源码阅读(六)请求类型探索

    Soul网关源码阅读(六)请求类型探索 简介     在上几篇文章中分析了请求的处理流程,HTTP和RPC请求处理是互斥的,通过请求类型来判断,这篇文章来探索下请求类型的前世今生 源码分析     通 ...

  9. Soul 网关源码阅读(三)请求处理概览

    Soul 源码阅读(三)请求处理概览 简介     基于上篇:Soul 源码阅读(二)代码初步运行的配置,这次debug下请求处理的大致路径,验证网关模型的路径 详细流程记录 查看运行日志,寻找切入点 ...

最新文章

  1. LeetCode 450 Delete Node in a BST(二叉搜索树中的删除结点)
  2. 报表移动端app如何实现页面自适应?
  3. owls-uddi-matchmaker安装
  4. 12月29日二周五次【Python基础语法】
  5. Windows下Python3+nose+appium自动化测试之Android篇
  6. Oracle 20c 新特性:基础级内存数据库免费功能 In-Memory Base Level
  7. Java进阶知识点:协变与逆变
  8. ELK官方文档:在Kibana加密通讯
  9. linux用Vim上传.sql,真的有(很多)linux大牛用vim写项目吗?
  10. PDF有限制不能编辑怎么办?
  11. 家用中央空调设计浅议
  12. hdu 5053 the Sum of Cube(水)
  13. Tera term的TTL脚本使用方法
  14. win10完美运行红警
  15. 浅谈面向对象的编程思想:如何优雅地把大象装进冰箱?
  16. 对小样本数据进行数据增强
  17. 是否有标准函数来检查 JavaScript 中的 null、未定义或空白变量?
  18. 上传手机文件ftp服务器,从android手机上传文件到FTP服务器?
  19. SpringCloud-Gateway配置及持久化、过滤器、异常处理
  20. lol韩服游戏内设置_韩服LOL进去了还不能玩?教你如何玩韩服!

热门文章

  1. android中Stub Proxy答疑
  2. Welcome to Swift (苹果官方Swift文档初译与注解八)---53~57页(第二章)
  3. Potted Flower(线段树+dp)
  4. poj 2479 (DP)
  5. Windows Workflow Foundation实验01——Windows Workflow Foundation快速入门(练习四)
  6. 发布一个域安全级别的无代码InfoPath表单作为文档库模版 (InfoPath 一)
  7. Lumines! to exploit
  8. 解决log4j:WARN Error initializing output writer. log4j:WARN Unsupported encoding?的问题
  9. ios cannot use “@throw“ with objective-c exceptions disabled 问题解决方案
  10. 基于Android 9.0 电池温度异常提醒