摘要:
Soul的匹配策略和waf执行流程 soul的匹配策略 通过前面几节的分析我们可以看到,几乎所有的插件都有匹配的规则执行的顺序,而我们通过插件分析了解到,具体的规则匹配是在soul-plugin-base中实现的 在AbstractSoulPlugin文件中我们可以看到,具体的筛选规则的要求被封装在 阅读全文
摘要:
Soul限流插件之RateLimiter插件 从Soul的RateLimiter插件的配置可以看到 RateLimiter是依赖于Redis的,可以看到限流也可以基于Redis的三种模式的单机(standlone),集群(cluster)和哨兵(sentinel)模式 在插件处理的开启的过程中即进行 阅读全文
摘要:
Soul网关限流插件Sentinel和Resilience4J扫盲 Soul网关限流插件Sentinel扫盲 首先看Soul中Sebtinel可以配置的项目 对应的配置的含义 degrade count:熔断阈值 whether to open the degrade (1 or 0):是否开启熔断 阅读全文
摘要:
线程隔离和信号量隔离 Hystrix 里面核心的一项功能,其实就是所谓的资源隔离,要解决的最最核心的问题,就是将多个依赖服务的调用分别隔离到各自的资源池内。避免说对某一个依赖服务的调用,因为依赖服务的接口调用的延迟或者失败,导致服务所有的线程资源全部耗费在这个服务的接口调用上。一旦说某个服务的线程资 阅读全文
摘要:
Soul中使用的zookeeper监听功能尝试 一直很好奇soul中基于zookeeper的数据变更是如何做到的。虽然看到了是基于zkClient的实现的,还是想自己尝试下 zookeeper监听尝试 首先新建一个maven项目,引入zkClient <dependency> <groupId>co 阅读全文
摘要:
阶段性 Soul网关使用感受 通过一段时间的Soul网关的接触,总结了一些我认为Soul网关存在的优势 使用上 使用界面化的方式实现的属性配置,极大的降低了网关的使用难度,相比Springcloud gateway使用容易很多 插件化的配置,使得稍有基础的开发人员很容易集成与网关相关的基础组件。同时 阅读全文
摘要:
Soul的限流断路器的使用和流程 由于之前并没有使用过Hystrix,Resilience4j和sentinel中的任何一种,此处仅对三种流控和断路器插件做一个流程分析 Soul中Hystrix的使用和操作流程 关于soul中插件的流程前文已经说过多次了,在此不在赘述。 根据规则的具体选择方式。So 阅读全文
摘要:
Soul源码中dubbo和sofa的执行过程 Soul源码中dubbo的执行过程 首先在 soul-examples-apache-dubbo-service 中依赖的soul-client中ApacheDubboServiceBeanPostProcessor对注解SoulDubboClient了 阅读全文
摘要:
Soul网关的探活--基于zookeeper同步数据的解析 Soul网关的探活,主要分为两部分,第一部分是soul admin探活。一部分是soul-admin同步数据到网关层soul-boostrap。本文以一个http客户端宕机之后的探活为例 Soul-admin探活 Soul-admin 探活 阅读全文
摘要:
Soul的SPI以及负载均衡策略研究 上一节留下的几个问题在之后进行的研究 如何从abstractSoulPlugin执行完之后到WebClientPlugin的相同方法,是责任链模式还是其他的加载过程 各个插件执行的时候实际上是责任链模式。请求分发执行的这个方法主要是SoulWebHandler 阅读全文