![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
soul
文章平均质量分 84
可惜_没如果
这个作者很懒,什么都没留下…
展开
-
soul源码解读(十八)-- resilience4j插件原理分析
soul源码解读(十八)resilience4j插件使用resilience4jresilience4j插件是网关用来对流量进行限流与熔断的可选选择之一。resilience4j为网关熔断限流提供能力。插件使用1.启动 admin,打开 resilience4j 插件开关2.在 bootstrap 项目的 pom 文件引入 resilience4j 插件的相关依赖,启动 bootstrap <!-- soul resilience4j plugin start--> <原创 2021-02-06 01:25:37 · 598 阅读 · 0 评论 -
soul源码解读(十七)-- hystrix插件原理分析
soul源码解读(十七)hystrix插件使用源码分析基于信号量基于线程hystrixhystrix插件是网关用来对流量进行熔断的核心实现。使用信号量的方式来处理请求。插件使用1.启动 admin,打开 hystrix 插件开关2.在 bootstrap 项目的 pom 文件引入 hystrix 插件的相关依赖,启动 bootstrap <!-- soul hystrix plugin start--> <dependency> <groupI原创 2021-02-04 01:46:20 · 140 阅读 · 0 评论 -
soul源码解读(十六)-- rateLimiter插件原理分析
soul源码解读(十六)使用rateLimiter分析源码官网的介绍和流程图如下:限流插件,是网关对流量管控限制核心的实现。可以到接口级别,也可以到参数级别,具体怎么用,还得看你对流量配置。使用 rateLimiter 插件,我们需要安装 redis ,这里可以参考我之前写的文章Windows下部署redis主从、哨兵(sentinel)、集群(cluster)使用rateLimiter1.启动 admin,打开 rateLimiter 插件开关2.在 bootstrap 项目的 po原创 2021-02-01 22:19:44 · 212 阅读 · 0 评论 -
soul源码解读(十五)-- springcloud插件原理分析
soul源码解读(十五)准备工作sprigncloud插件分析总结准备工作照着之前的文章启动好服务sprincloud插件初体验1.启动 admin ,打开 springcloud 插件开关2.启动 eureka 服务3.在 bootstrap 的 pom.xml 文件中放开 springcloud plugin 和 eureka 依赖的注释,加上 eureka 配置,然后启动 bootstrap 服务4.启动两个 soul-examples-springcloud 项目,端口分别为8884和原创 2021-01-30 22:54:56 · 162 阅读 · 1 评论 -
soul源码解读(十四)-- 插件链
soul源码解读(十四)soul的插件链总结soul的插件链前两天分析 divide 插件的时候,留了个坑,今天就来讲讲 soul 的插件链,把这个坑补上。我们先看下下面这段代码,已经在前面的文章中出现了几次了,今天就来具体分析分析。// SoulWebHandler.javapublic Mono<Void> execute(final ServerWebExchange exchange) { return Mono.defer(() -> { if (t原创 2021-01-30 02:05:20 · 276 阅读 · 0 评论 -
soul源码解读(十三)-- http服务探活
soul源码解读(十三)http服务探活admin探活服务注册服务下线总结http服务探活官方文档写的是(官方文档地址): ip + port 检测 在soul-admin 会有一个定时任务来扫描 配置的ip端口,如果发现下线,则会去除该 ip + port 还有两个配置可以控制是否检测和检测间隔时间 soul.upstream.check:true 默认为 ture,设置为false,不检测 soul.upstream.scheduledTime:10 定时检测时间间隔,默认原创 2021-01-29 01:45:37 · 551 阅读 · 0 评论 -
soul源码解读(十二)-- divide插件原理分析
soul源码解读(十二)divide插件原理分析插件调用总结divide插件原理分析1.启动 admin 和 bootstrap2.启动两个 soul-examples-http 服务,端口号分别为8188、81893.用 postman 调用接口 http://localhost:9195/http/order/findById?id=3插件调用发现程序入口在 SoulWebHandler#handle 。handle 会调用 execute() 去执行具体的插件逻辑(这里埋个坑,后面会写篇原创 2021-01-27 23:31:53 · 254 阅读 · 0 评论 -
soul源码解读(十一)-- 数据同步总结
soul源码解读(十一)数据同步初始化更新配置总结数据同步同步类型实现方式优点缺点websocket引入jar即可使用简单,双向通信,增量更新要注意断线重连zookeeper需要单独安装zookeeper如果系统本身有用到zookeeper,可以很方便的集成依赖zookeeper,zk频繁写性能不好http引入jar即可不需要额外安装第三方系统不是传统的长轮询,每次轮询都会重新发一个http请求nacos需要单独安装nacos如果系统本身有原创 2021-01-27 00:20:09 · 188 阅读 · 0 评论 -
soul源码解读(十)-- 数据同步之nacos
soul源码解读(十)数据同步之nacos安装nacos启动 admin启动bootstrap如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入数据同步之nacos安装nacos先从官网下载安装包 https://github.com/alibaba/nacos/rel原创 2021-01-26 00:13:49 · 204 阅读 · 0 评论 -
soul源码解读(九)-- 数据同步之http长轮询总结
soul源码解读(九)数据同步之http长轮询总结bootstrap端设置60s轮询的秘密bootstrap端fetch数据小细节总结数据同步之http长轮询总结bootstrap端设置60s轮询的秘密前两天看代码的时候,一直没找到 bootstrap 端到底是在哪里设置的每隔60轮询一次 admin// HttpSyncDataService.java public void run() { //省略其他代码 while (RUNNING.get()) {原创 2021-01-23 23:30:29 · 162 阅读 · 1 评论 -
soul源码解读(八)-- 数据同步之http长轮询原理分析
bootstrap 端接收流程看到下面的日志,说明 bootstrap 也用了 http 长轮询来同步数据。2021-01-22 00:09:40.097 INFO 19916 --- [ main] .s.s.b.s.s.d.h.HttpSyncDataConfiguration : you use http long pull sync soul databootstrap 启动之后,发现 admin 断点进了这边 HttpLongPollingDataChangedLis原创 2021-01-23 00:25:15 · 169 阅读 · 0 评论 -
soul源码解读(七)-- 数据同步之http长轮询初体验
soul源码解读(七)数据同步之http长轮询admin 端同步数据流程数据同步之http长轮询zookeeper、websocket 数据同步的机制比较简单,而 http 同步会相对复杂一些。Soul 借鉴了 Apollo、Nacos 的设计思想,取其精华,自己实现了 http 长轮询数据同步功能。注意,这里并非传统的 ajax 长轮询!下面是 soul 官网上的图http 长轮询机制如上所示,soul-web 网关请求 admin 的配置服务,读取超时时间为 90s,意味着网关层请求配置服务最原创 2021-01-22 01:42:52 · 235 阅读 · 0 评论 -
soul源码解读(六)-- 数据同步之zookeeper
soul源码解读(六)数据同步之zookeeperadmin 发布消息流程bootstrap 端接收流程总结数据同步之zookeeper基于 zookeeper 的同步原理很简单,主要是依赖 zookeeper 的 watch 机制,soul-web 会监听配置的节点,soul-admin 在启动的时候,会将数据全量写入 zookeeper,后续数据发生变更时,会增量更新 zookeeper 的节点,与此同时,soul-web 会监听配置信息的节点,一旦有信息变更时,会更新本地缓存。1.修改 admi原创 2021-01-20 22:10:56 · 117 阅读 · 0 评论 -
soul源码解读(五)-- 数据同步之websocket
soul源码解读(五)数据同步之websocket总结:数据同步之websocket今天我们来看下 soul admin 与 bootstrap 之间数据同步的源码。官网链接如下:https://dromara.org/zh-cn/docs/soul/dataSync.html先来张流程图从第一天的启动日志我们发现它们是通过 websocket 来进行通信的。看 admin 的配置发现,soul 数据同步有4种方式,分别是 websocket 、zookeeper 、http 、 nacos原创 2021-01-19 23:20:39 · 223 阅读 · 0 评论 -
soul源码解读(四)-- springcloud 插件初体验
soul源码解读(四)springclouddebug总结:springcloud我们今天体验下 soul 的 springcloud 插件。1.启动 admin ,打开 springcloud 插件开关2.查看下 soul-examples 模块里的 soul-examples-springcloud 项目,在 pom 文件里可以看到示例代码用的是 eureka<dependency> <groupId>org.springframework.cl原创 2021-01-19 00:53:00 · 329 阅读 · 1 评论 -
soul源码解读(三)-- sofa插件初体验
soul源码解读(三)sofasofa我们进体验下 soul 的 sofa 插件。1.启动 admin2.在 bootstrap 的 pom.xml 文件中增加如下依赖:sofa版本换成你的,注册中心的jar包换成你的,以下是参考。<dependency> <groupId>com.alipay.sofa</groupId> <artifactId>sofa-rpc-all</artifactId&原创 2021-01-17 01:36:12 · 432 阅读 · 0 评论 -
soul源码解读(一)-- 环境搭建
soul源码解读soul源码解读下载代码编译代码soul架构图soul-admin初体验soul-bootstrap初体验soul源码解读最近准备开始一个soul源码阅读计划,今天是第一天下载代码项目地址:https://github.com/dromara/soul可以先把项目fork到自己的仓库,然后从自己仓库下载项目下载下来之后,设置远程仓库git remote add upstream https://github.com/dromara/soul以后soul有更新,就可以直接拉取原创 2021-01-15 00:18:37 · 1682 阅读 · 0 评论