soul学习16——Sentinel插件学习 发表于 2021-03-15 | 更新于 2021-03-18 | 分类于 soul 概述在业务网关中熔断和流量控制都是非常必要的功能。soul在实现这部分功能时使用了不同的成熟组件,用户可以根据自己的喜好选择。本文将介绍如何在soul中使用阿里的Sentinel组件实现熔断及流控功能。本文首先会介绍熔断和流控的场景及意义。然后介绍如何在soul上配置使用sentinel插件做流控和熔断。最后从源码的层面简略分析soul是如何使用Sentinel组件的。 阅读全文 »
soul番外1——XSS攻击 发表于 2021-02-01 | 更新于 2021-03-15 | 分类于 soul 概述网关作为所有服务的大门,应该有一些安全防护的功能,抵御常规的攻击。XSS攻击是非常常见的一种攻击方式。本文将简单介绍XSS攻击并讨论网关应该如何抵御XSS攻击。 阅读全文 »
soul学习14——Divide插件学习 发表于 2021-01-29 | 更新于 2021-01-30 | 分类于 soul 概述前面的一些列文章介绍了soul网关的核心流程以及数据同步这两大最重要的功能逻辑。鉴于后续希望为soul贡献1个插件,所以接下来再学习学习soul中其它核心插件的写法,今天先看看divide插件 阅读全文 »
soul学习13——zookeeper同步数据 发表于 2021-01-28 | 更新于 2021-01-30 | 分类于 soul 概述前几篇文章介绍了suol用websocket、http长轮询的方式同步数据,今天我们来看看zookeeper同步数据是如何实现的。使用websocket同步数据时,在soul-admin服务端有负责监听数据变化事件的HttpLongPollingDataChangedListener以及负责接收soul网关连接的WebsocketCollector,在soul服务端有实现SyncDataService的WebsocketSyncDataService,负责实现当接收到配置变化。下面我们来对应看看zookeeper这几部分是如何实现的。 阅读全文 »
soul学习12——http长轮询同步数据 发表于 2021-01-27 | 分类于 soul 概述前两篇文章以websocket同步方式介绍了整个数据同步的流程,今天我们来看看http长轮询同步数据是如何实现的。使用websocket同步数据时,在soul-admin服务端有负责监听数据变化事件的HttpLongPollingDataChangedListener以及负责接收soul网关连接的WebsocketCollector,在soul服务端有实现SyncDataService的WebsocketSyncDataService,负责实现当接收到配置变化。下面我们来对应看看http长轮询这几部分是如何实现的。 阅读全文 »
soul学习11—数据同步主流程(下) 发表于 2021-01-26 | 更新于 2021-01-27 | 分类于 soul 概述从今天admin端观察一下数据同步。主要看admin是在pluginData数据变更时是如何通知soul网关更新pluginData的数据。 阅读全文 »
soul学习10——数据同步主流程(上) 发表于 2021-01-25 | 更新于 2021-01-30 | 分类于 soul 概述从今天起开始研究soul数据同步的内容。soul区别于其它网关的一大特点就是动态配置更新功能。所有网关配置在admin上更新后会自动同步到soul网关节点。主要需要同时的数据有3类:auteData、metaData、PluginData,更新方式也有websock、zookeeper、http长轮询、nacos4种。本文旨在梳理数据同步的核心流程,后续着重研究websock、zookeeper和http长轮询的实现细节。 阅读全文 »
soul学习09——插件相关抽象及设计 发表于 2021-01-23 | 更新于 2021-01-24 | 分类于 soul 概述之前一系列文章讲解了soul网关的核心处理流程。未来的一些列文章将主要完成2个事情。1个是soul的配置同步机制另一个是设计完成一个与安全相关的插件。soul的配置同步机制可以说是与核心处理逻辑同等重要的功能,同样也是soul与spring-gateway、zuul核心的区别与特点。而完成一个安全相关的插件并贡献到社区,也算是对soul学的的一个总结。 本文主要再看看插件设计方面的东西,即soul-plugin-api 与 soul-plugin-base这两个项目, 为后续写插件做准备,同时重点关注数据同步的东西。 阅读全文 »
elasticsearch-ik插件学习(中) 发表于 2021-01-23 | 更新于 2021-01-30 | 分类于 elasticsearch 概述本系列主要从源码的角度介绍es-IK插件,本文主要从源码层面介绍ik分词的主线逻辑暂不涉及中文分词的逻辑。 阅读全文 »