自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 【高性能网关soul学习】18. 插件之 waf

【高性能网关soul学习】18. 插件之 waf本文目标:分析 soul 插件 SentinelPlugin 集成 Sentinel 的源码官网文档waf 插件是由 soul网关自己实现的,是 soul 其他插件的前置插件,主要用来拦截非法请求,或者异常请求,并且给与相关的拒绝策略。Soul 中 Waf 插件启动流程依次启动 soul-admin、http测试服务、soul-bootstrap 网关服务不需要额外增加依赖打开 系统管理 >> 插件 >&gt

2021-02-06 00:32:57 222 1

原创 【高性能网关soul学习】18. 熔断限流插件之 Sentinel

【高性能网关soul学习】18. 熔断限流插件之 Sentinel本文目标:分析 soul 插件 SentinelPlugin 集成 Sentinel 的代码不涉及 sentinel 实现限流熔断的代码官网地址SentinelSentinel是阿里开源的一个项目,以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。实时的监控功能、开箱即用的与其他开源那框架/库的整合模块、本身简单易用、完善的 SPI 扩展点Soul 中 Sentinel 插件启动流程

2021-02-05 00:17:44 741 1

原创 【高性能网关soul学习】17. 熔断限流插件之Resilienc4j

【高性能网关soul学习】17. 熔断限流插件之Resilienc4j本文目标:跑通熔断限流插件 Resilienc4j分析 Soul 中 Resilienc4j 是如何集成的官网地址Resilienc4jResilience4j是一个轻量级容错框架,设计灵感来源于Netflix 的Hystrix框架,为函数式编程所设计。Resilience4j 提供了一组高阶函数(装饰器),包括断路器,限流器,重试,隔离,可以对任何的函数式接口,lambda表达式,或方法的引用进行增强,并且这些装饰器

2021-02-04 01:09:26 351 2

原创 【高性能网关soul学习】16. 熔断插件之Hystrix

【高性能网关soul学习】16. 熔断插件之Hystrix本文目标:跑通熔断插件 Hystrix分析 Soul 中 hystrix 源码实现官网地址Hystrix 插件启动流程soul-bootstrap 增加 soul-spring-boot-starter-plugin-hystrix 依赖依次启动 soul-admin、http测试服务、soul-bootstrap 网关服务参考选择器配置规则 进行配置hystrix 的隔离模式分为两种semaphoret

2021-02-02 01:17:29 179 1

原创 【高性能网关soul学习】15. 插件之sofa实现流程

【高性能网关soul学习】15. 插件之sofa实现流程本文目标:简单介绍 sofa 插件原理sofa 插件sofa 插件作为插件链的一环,处理 sofa 的请求,依次启动各个服务。根据调用路径获取,SofaPlugin 相关的核心大致流程图:doExecute:异常情况检查sofaProxyService.genericInvoker根据 metaData.path 去缓存 ApplicationConfigCache 获取或者创建一个 ConsumerConfig从Cons

2021-01-31 02:09:16 261

原创 【高性能网关soul学习】14. 插件之dubbo原理

【高性能网关soul学习】14. 插件之dubbo原理本文目标:介绍 dubbo 插件原理,本文主要以 alibaba-dubbo 部分作为介绍dubbo 插件dubbo 插件作为插件链的一环,处理 dubbo 的请求我们启动相关服务,然后跟踪请求分析逻辑代码做了些什么AlibabaDubboPlugin 相关的核心大致流程图:doExecute:异常情况检查alibabaDubboProxyService.genericInvoker根据 metaData的信息去缓存Appl

2021-01-30 05:16:50 194

原创 【高性能网关soul学习】13. 插件之springcloud

【高性能网关soul学习】13. 插件之springcloud本文目标:介绍springcloud插件原理SpringCloud 插件springCloud 插件作为插件链的一环,处理springCloud 的请求首先我们照惯例启动 soul-admin、soul-bootstrap(注意引入springcloud依赖 ),然后启动 springCloud 的测试服务,使用了nacos 作为注册中心,配置如下server: port: 8884 address: 0.0.0

2021-01-29 01:43:20 165

原创 【高性能网关soul学习】12. soul admin集群配置下的数据同步一致性

【高性能网关soul学习】12. soul 集群配置下的数据同步一致性本文目标:分析 soul 在集群模式下如何确保各个节点间的数据同步一致性soul-bootstrap 的数据只是soul-admin中数据的缓存,因此我们主要来看 soul-admin 中的数据如何保证数据一致性soul-admin端间的数据同步保证启动两个服务:9094和9095端口的 soul-admin 服务,然后启动一个 soul-bootstrap 服务和两个http测试服务两个 http 测试服务都注册到9

2021-01-28 01:34:30 172 1

原创 【高性能网关soul学习】11. 插件之DevidePlugin

【高性能网关soul学习】11. 插件之DevidePlugin本文目标:简单介绍 soul 对于请求的处理和插件链的执行逻辑跑通divide插件,研究其负载均衡原理Soul对于请求的使用插件链方式的处理#mermaid-svg-I1AEZudhQHyQukUL .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#merma

2021-01-27 00:00:47 171 1

原创 【高性能网关soul学习】10. soul 小结之数据同步

【高性能网关soul学习】10. soul 小结之数据同步本文目标:总结一下 soul 目前支持的四种数据同步方式,并且分析代码中的设计模式等可以学习借鉴的设计实现方式Websocket(推荐)Zookeeper(推荐)Http 长轮询Nacos数据同步整体流程Soul-AdminDataChangedEventDispatchersoul-Admin 对数据进行crud变更操作的同时,都会触发一个 DataChangedEvent(数据变更事件)数据变动事件:DataChang

2021-01-26 00:34:29 376

原创 【高性能网关soul学习】9. soul 数据同步之 Nacos

【高性能网关soul学习】9. soul 数据同步之 Nacos本文目标:介绍 soul-admin 与 soul-web 之间通过 Nacos 进行同步的细节配置 nacos 进行数据同步nacos文档启动nacos之后,首先需要手动配置一个namespacenamespace 的 id 设置为 1c10d748-af86-43b9-8265-75f487d20c6c命名为 soulsoul-bootstrap 网关服务引入依赖 和进行配置<!--soul data sy

2021-01-24 04:20:53 461

原创 【高性能网关soul学习】8. soul 数据同步之http长轮询

【高性能网关soul学习】8. soul 数据同步之http长轮询本文目标:介绍 soul-admin 与 soul-web 之间通过 Http 进行同步的细节配置http进行数据同步网关服务引入依赖同时需要注释掉 soul-spring-boot-starter-sync-data-websocket 依赖 和 zk依赖 <!--soul data sync start use http--> <dependency> <

2021-01-23 01:20:13 136

原创 【高性能网关soul学习】7. soul 数据同步之Zookeeper

【高性能网关soul学习】7. soul 数据同步之Zookeeper本文目标:了解 soul-admin 与 soul-web 之间通过 Zookeeper 进行同步的细节。ZK同步的大致流程:基于 zookeeper 的同步原理很简单,主要是依赖 zookeeper 的 watch 机制,soul-web 会监听配置的节点,soul-admin 在启动的时候,会将数据全量写入 zookeeper,后续数据发生变更时,会增量更新 zookeeper 的节点,与此同时,soul-web 会监听配

2021-01-22 01:20:14 147 1

原创 【高性能网关soul学习】6. Websocket 方式数据同步流程后续

【高性能网关soul学习】6. Websocket 方式数据同步流程后续上文 中我们讲到PluginDataSubscriber,本文则主要介绍 boot-strap 中对同步过来的数据的处理逻辑CommonPluginDataSubscriber的核心方法为 subscribeDataHandler(), 针对不同的数据类型和操作类型,执行不同的逻辑,下文主要以选择器的更新为例下面方法只copy了选择器部分的代码private <T> void subscribeDataHa

2021-01-21 00:29:03 116 4

原创 【高性能网关soul学习】5. soul-admin 数据配置变更及 Websocket 方式数据同步流程

【高性能网关soul学习】5. soul-admin 数据配置及Websocket 方式数据同步本文主要目标:本篇是对admin后台操作数据以后,同步到网关的流程介绍用户可以在 soul-admin 后台任意修改数据,并马上同步到网关的jvm内存中。同步soul的插件数据,选择器,规则数据,元数据,签名数据等等。所有插件的选择器,规则都是动态配置,立即生效,不需要重启服务。数据配置的流程图如下所示:打开浏览器的检查选项,然后访问admin控制台的插件列表,我们可以看到选择器的相关请求

2021-01-20 00:49:55 224

原创 【高性能网关soul学习】4. soul-client 客户端信息上传

【高性能网关soul学习】4. soul-client 客户端信息上传本文主要目标:分析soul-client 中client 端如何注册相关信息到 soul-admin1. dubbo服务SoulAlibabaDubboClientConfiguration 配置类加载了两个bean DubboConfig 和 AlibabaDubboServiceBeanPostProcessor/ApacheDubboServiceBeanPostProcessor1.1 DubboConfig@Dat

2021-01-19 00:13:22 348

原创 【高性能网关soul学习】3. dubbo代理

3.高性能网关Soul学习之dubbo代理本文主要目标1.运行 soul-examples 下面的http服务2.根据 官方文档,结合dubbo插件,发起http请求soul网关,体验http代理dubbo代理demo本地启动一个zk,默认端口2181开启dubbo插件在 soul-admin --> 插件管理-> dubbo 设置为开启。在dubbo插件的配置中,配置如下:配置dubbo的注册中心。{"register":"zookeeper://localhos

2021-01-17 01:23:53 217

原创 【高性能网关soul学习】2. http负载均衡

2.高性能网关Soul学习之http负载均衡本文主要目标1.运行 soul-examples 下面的http服务2.根据 官方文档,结合divde插件,发起http请求soul网关,体验http代理前置准备:启动 soul-admin 和 soul-bootstrap修改 soul-examples-http 中的类 OrderController,增加计数功能(后续流控时统计用)private final Map<String, AtomicInteger> co

2021-01-15 23:53:40 265

原创 【高性能网关soul学习】1. 基础概念和http流量转发demo搭建

基本功能 - 高性能网关学习Soul(1)

2021-01-14 01:08:21 421

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除