Java
文章平均质量分 94
木瓜饭
这个作者很懒,什么都没留下…
展开
-
Soul网关源码学习(20)- WebFlux 核心组件的装配 和 请求流程
文章目录前言WebFlux 核心组件的装配WebFlux 请求流程DispatcherHandler前言WebFlux 核心组件的装配WebFlux :我从哪里来?我是谁?我在干什么?Spring boot 的自动装载的外部化配置文件是 /resources/META-INF/spring.factories,所以我们第一时间想到的就是去依赖包 spring-boot-starter-webflux 下看一下这个文件,但是很遗憾,当我们在 idea 下展开依赖包的时候,发现只有一个 mainife原创 2021-02-07 08:50:23 · 735 阅读 · 1 评论 -
Soul网关源码学习(19)- 认证:SignPlugin
文章目录前言Ak/SK鉴权技术简介SignPlugin 的使用SignPlugin 源码分析总结前言在上一篇文章《Soul网关源码学习(18)- 防火墙:WafPlugin》中,我们学习了 WafPlugin 的使用,并且分析了其实现原理。那这一篇我们再来学习如何使用 suol 网关来进行签名认证。Ak/SK鉴权技术简介在介绍 SignPlugin 之前,有必要先简单介绍一下Ak/SK鉴权技术方案。在我们对接一些 PASS 平台和支付平台时,会要求我们预先生成一个 access key(AK) 和原创 2021-02-05 23:27:48 · 491 阅读 · 0 评论 -
Soul网关源码学习(18)- 防火墙:WafPlugin
文章目录前言WafPlugin 的使用WafPlugin 源码分析总结前言在上一篇文章《Soul网关源码学习(17)- 限流:RateLimiterPlugin》中,我们学习了 RateLimiterPlugin 的使用,并且分析了其实现原理。那这一篇我们再来学习另外一个插件:防火墙插件 WafPlugin。WafPlugin 的使用waf插件,是网关的用来对流量实现防火墙功能的核心实现,现在我们就先来看一下它到底是怎么使用的。和其他插件一样,先引入依赖:<dependency>原创 2021-02-04 23:09:27 · 314 阅读 · 1 评论 -
Soul网关源码学习(17)- 限流:RateLimiterPlugin
文章目录前言RateLimiterPlugin 的使用RateLimiterPlugin 的实现原理总结前言在上一篇文章[《Soul网关源码学习(16)- Resilience4JPlugin分析》中,我们学习了 Soul 是如何集成 Resilience4J 框架的,本来最后还剩 Sentinel 的集成原理没有分析,但是后来我发现 Sentinal 的集成代码非常的简单,有了前面两篇的参考之后,我相信小伙伴们自己去看难道也不大,所以这部分就不过多分析了。接下来,我们再来学习一个新的插件 RateLi原创 2021-02-04 01:33:27 · 481 阅读 · 0 评论 -
Soul网关源码学习(16)- Resilience4JPlugin分析
文章目录前言Resilience4JResilience4JPlugin总结前言在上一篇文章《Soul网关源码学习(15)- HystrixPlugin 分析》中,我们分析了 soul 集成 hystrix的原理,这一章我们再来分析一下 Resilience4J 到底是如果通过 Resilience4JPlugin 集成到 soul 里面的。Resilience4JResilience4j是受到Netflix Hystrix的启发,为Java8和函数式编程所设计的轻量级容错框架。整个框架只是使用了V原创 2021-02-02 01:39:11 · 251 阅读 · 1 评论 -
Soul网关源码学习(15)- HystrixPlugin 分析
文章目录前言HystrixHystrixPlugin 的实现隔离策略 - 基于信号量:HystrixCommand隔离策略 - 基于线程:HystrixCommandOnThread总结前言在上一篇文章《Soul网关源码学习(14)- hystrix,resilienc4j,sentinel 插件的使用和对比》中,我们学习了 hystrix,resilienc4j,sentinel 插件的使用,从这一章节起,我们将从 HystrixPlugin 开始逐个分析它们源码上的实现。Hystrix什么是H原创 2021-01-31 05:44:42 · 339 阅读 · 0 评论 -
Soul网关源码学习(14)- hystrix,resilienc4j,sentinel 插件的使用和对比
文章目录前言hystrix 使用resilienc4j 使用sentinel 使用对比总结前言在前面第6~13章中,我们分析了 Soul 网关核心功能“代理转发”的设计,并且以 Http 和 Dubbo 为切入点分析了其关键节点的底层实现。本来还剩下 Sofa 和 tars 代理的相关插件需要分析的,但是我发现它们在实现上和 Dubbo 代理的非常相似,因此这两个协议的代理就准备留给有兴趣的小伙伴自己去分析了。不知道小伙伴还记得第六章、第七章所画的哪些图中,有一些粉红色的插件,这些插件不是代理转发所原创 2021-01-30 07:19:51 · 704 阅读 · 1 评论 -
Soul网关源码学习(13)- Apache Dubbo 代理转发流程细解
文章目录前言BodyParamPluginApacheDubboPluginDubboResponsePlugin总结前言在前面第 8 ~ 12章中,我们深入分析了 Soul 关于 Http 的代理转发的底层实现,本篇我们开始分析 Apache Dubbo 的代理转发的是如何实现的。由于在前面的文章,我们已经分析了一些公有插件的实现,这里就不重复了,这里只针对 Apache Dubbo 代理的相关插件的实现进行分析。如果有小伙伴不明白不同协议代理之间一些流程上的共性,可以回去参考第6章和第7章。Bod原创 2021-01-29 01:50:27 · 419 阅读 · 0 评论 -
Soul网关源码学习(12)- 对下游 Http 服务的请求和响应处理
文章目录前言WebClientPluginWebClientResponsePlugin总结前言在上一篇文章《Soul网关源码学习(11)- Http代理的负载均衡:DividePlugin 和 SpringCloudPlugin》 中,我们分析了 Soul 对于负载均的实现,下一步就是发起对目标服务的请求了,那么本篇文章,我们就来分析 Http 代理转发的最后两站 WebClientPlugin 和 WebClientResponsePlugin。WebClientPluginWebClientP原创 2021-01-28 00:22:35 · 825 阅读 · 0 评论 -
Soul网关源码学习(11)- Http代理的负载均衡:DividePlugin 和 SpringCloudPlugin
文章目录前言DevidePlugin负载均衡策略 - 加权随机负载均衡策略 - 一致性 Hash负载均衡策略 - 加权轮询SpringCloudPlugin总结参考资料前言在上一篇文章《Soul网关源码学习(10)- 插件模板 AbstractSoulPlugin》 中,我们分析了插件的模板抽象类 AbstractSoulPlugin,AbstractSoulPlugin #executor 方法主要抽象了 PluginData、SelectorData、Rule 的获取和筛选流程,并将它们作为参数传递原创 2021-01-27 07:34:31 · 404 阅读 · 0 评论 -
Soul网关源码学习(10)- 插件模板 AbstractSoulPlugin
文章目录前言AbstractSoulPluginpluginDataSelectorDataRuledoExecute总结前言在前一篇文章《Soul网关源码学习(9)- 请求解析 GlobalPlugin》 中,我们学习请求流入的第一个插件 GlobalPlugin 的源码,GlobalPlugin 处理完之后,请求就有可能因为协议的不同而流向不同的插件路线,而后面这些插件的实现有很大一部分都有着一个共同的抽象模板 AbstractSoulPlugin,所以在学习后面这些插件的源码之前,有必要先来了解一原创 2021-01-25 21:39:48 · 1091 阅读 · 0 评论 -
Soul网关源码学习(9)- 请求解析 GlobalPlugin
前言在前一篇文章《Soul网关源码学习(8)- 代理转发入口 SoulWebHandler》 中,我们详细分析了网关的入口 SoulWebHandler,并且就代码中使用的几个技术进行了扩展延申学习。如果小伙伴看过前面两篇关于 soul 代理转发流程的介绍文章,都应该知道请求进入 SoulWebHandler 之后,下一站就是天后了!噗!开玩笑的!是 GlobalPlugin !。GlobalPluginGlobalPlugin 到底是干什么的?请求解析!这是我对 GlobalPlugin 功能原创 2021-01-24 04:06:17 · 385 阅读 · 0 评论 -
Soul网关源码学习(8)- 代理转发入口 SoulWebHandler
前言在前一篇文章《Soul网关源码学习(7)- 代理转发流程概览2》 中,我们理清楚了不同协议的代理转发流程,知道了每种协议处理的步骤和关键节点在哪里。那么现在就开始对这些节点逐个进入详细的分析,而 SoulWebHandler 作为 Request 的第一站自然就是我们首先要攻克的对象。WebHandler 简介在分析 SoulWebHandler 之前,我们需要先了解一下 WebHandler,因为 SoulWebHandler 是 WebHandler 的自定义实现。那 WebHandler原创 2021-01-23 07:39:42 · 425 阅读 · 0 评论 -
Soul网关源码学习(7)- 代理转发流程概览2
文章目录前言对比不同协议的代理转发流程dobbusofaspring cloud不同协议的代理转发流程总结总结前言在前一篇文章《Soul网关源码学习(6)- 代理转发流程概览》中,我们学习了:Soul 插件链在整个网关中扮演着至关重要的角色。学习了插件链的实现方式,即是如何传递执行。还了解了插件如何跳过执行。一种是“显式” Skip,通过调用插件的 skip 方法判断,这种类型插件一般是协议相关的插件,通过在 skip 方法中匹配协议是否符合。一种是“隐式” skip,这种是模板方法 Ab原创 2021-01-22 07:47:47 · 510 阅读 · 1 评论 -
Soul网关源码学习(6)- 代理转发流程概览
文章目录前言责任链Http 代理跟踪总结前言在前面几篇文章中,我们学习了如何使用 Soul 网关去代理 Http、Dubbo、Sofa 和 Spring Cloud 服务,并且对其进行了一些简单的测试。在这里,也说明一下本系列文章我们学习的一个大致的流程,我们会以主干向枝叶扩散的方式,对 Soul 进行一个全面的学习和分析,每一部分都是先学习如何使用,再对其进行源码分析。所以即使 Soul 给我们提供了很多非常好用的功能插件,这里我们也不会一上来就对 Soul 各个功能组件一顿分析,正所谓“擒贼先擒王原创 2021-01-21 07:36:10 · 743 阅读 · 1 评论 -
ShenYu 网关源码学习(1)- 简单介绍、编译和测试
文章目录前言GitHub下载编译启动网关启动Soul-bootstrap启动Soul-admin结语前言在开始学习Soul之前,我们先来了解一下Soul到底是什么?Soul是一个异步的,高性能的,跨语言的,响应式的API网关。Soul是站在巨人的肩膀上诞生的,它参考了Kong,Spring-Cloud-Gateway等优秀的网关,并在此基础上添加了一系列微服务领域的企业级功能:支持各种语言(http协议),支持dubbo和springcloud协议。插件化设计思想,插件热插拔,易扩展。灵活的流量原创 2021-01-14 18:06:49 · 10077 阅读 · 0 评论 -
OkHttp源码分析(3)- Dispatcher - 线程资源管理和分配
系列文章目录一、OkHttp源码分析(1)- 总体框架介绍二、OkHttp源码分析(2)- OkHttpClient - OkHttp的“ApplicationContext”三、OkHttp源码分析(3)- Dispatcher - 线程资源管理和分配四、OkHttp源码分析(4)- Call - 一次完整的用户请求封装五、OkHttp源码分析(5)- Interceptor调用链 - Http协议通信流程的实现和扩展六、OkHttp源码分析(6)- Transmitter - OkHttp的原创 2021-01-12 22:34:07 · 773 阅读 · 1 评论 -
OkHttp源码分析(2)- OkHttpClient - OkHttp的“ApplicationContext”
系列文章目录一、OkHttp源码分析(1)- 总体框架介绍二、OkHttp源码分析(2)- OkHttpClient - OkHttp的“ApplicationContext”三、OkHttp源码分析(3)- Dispatcher - 线程资源管理和分配四、OkHttp源码分析(4)- Call - 一次完整的用户请求封装五、OkHttp源码分析(5)- Interceptor调用链 - Http协议通信流程的实现和扩展六、OkHttp源码分析(6)- Transmitter - OkHttp的原创 2021-01-11 01:21:07 · 313 阅读 · 0 评论