![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sentinel源码分析
文章平均质量分 72
sentinel源码分析
岁月人
极客精神,热衷源码探索,持续学习
跟随云原生脚步,探索深度学习方向
展开
-
sentinel源码分析第十五篇一核心流程一样本窗口数据结构
文章目录原理图一读写架构原理图一窗口原理图一窗口的表现形式源码分析MetricNode一toThinString源码分析MetricNode一toFatString总结FatString一thinString原理图一读写架构Slot槽在内存中负责构建样本窗口的统计信息FlowRuleManager流控规则管理器每一秒将分钟级度量信息写入磁盘用户可以发起http请求对特定资源某一范围内的度量信息进行查询其内部根据磁盘文件,通过遍历文件行获取相关信息返回原理图一窗口类名作用原创 2022-02-20 22:23:53 · 466 阅读 · 0 评论 -
sentinel源码分析第十四篇一核心流程一集群架构
这里写目录标题配置图架构图总结扩展点一集群示例图配置图一个集群的节点包含配置的server以及client没有配置的节点不会纳入集群一个业务应用程序甚至可以配置多个集群限流当配置完毕后,控制面板会为所有client和server发送请求client请求负责启动嵌入式clientserver请求负责启动嵌入式sever还需为client设置server的ip信息架构图总结集群模式必须前置配置完集群节点拓扑结构否则集群规则不生效会降级成单机限流或直接通过限流通过控制面板配置原创 2022-02-17 20:26:16 · 1321 阅读 · 0 评论 -
sentinel源码分析第十三篇一核心流程一DegradeSlot熔断
文章目录源码分析一DegradeSlot.entry源码分析一熔断器开关以及半开状态分析总结扩展点一降级熔断配置图源码分析一DegradeSlot.entry熔断检查获取熔断器规则未通过熔断检测则报错public void entry(Context context, ResourceWrapper resourceWrapper, DefaultNode node, int count, boolean prioritized, Object..原创 2022-02-17 20:12:53 · 347 阅读 · 0 评论 -
sentinel源码分析第十二篇一核心流程一FlowSlot流控
文章目录源码分析一入口checkFlow源码分析一canPassCheck源码分析一集群流控passClusterCheck源码分析一clusterService.requestToken源码分析一单机流控passLocalCheck快速失败DefaultController扩展点一外部配置图源码分析一入口checkFlow获取所有的流控规则 通过flowRuleManager 获取资源的所有规则没有通过流控则抛出异常 流控规则和node中的统计信息比较public class FlowRul原创 2022-02-17 20:03:27 · 580 阅读 · 0 评论 -
sentinel源码分析第十一篇一核心流程一ParamFlowSlot流控
文章目录一级目录二级目录三级目录一级目录二级目录三级目录原创 2022-02-17 00:15:12 · 393 阅读 · 0 评论 -
sentinel源码分析第十篇一核心流程一ProcessorSlotChain.entry及ProcessorSlot链执行
文章目录原理图源码分析一入口源码分析一入口总结原理图官网的Slot链顺序存在问题,此处slot执行顺序同实际顺序源码分析一入口注意: 同一个资源在不同ContextName的上下文中,DefaultNode不同;注意: 每一个资源只有一个ClusterNode 但可以有多个DefaultNodetry { 每个ProcessorSlot 的entry()方法负责真正的业务处理部分 NodeSelectorSlot 负责收集资源的路径,并将这些资源的调用路径,以树状结构存储原创 2022-02-16 22:50:59 · 479 阅读 · 0 评论 -
sentinel源码分析第九篇一核心流程一lookProcessChain查找资源处理链
文章目录源码分析一lookProcessChain源码分析一SlotChainProvider构建slotChain源码分析一slotChainBuilder.build总结源码分析一lookProcessChain通过chainMap获取resource对应的chain存在则直接返回SLOT_CHAIN实例超过6000则返回null,不进行处理通过SlotChainProvider构建chain加入chainMapProcessorSlot<Object> lookProce原创 2022-02-16 01:58:48 · 286 阅读 · 0 评论 -
sentinel源码分析第八篇一核心流程一SphU.entry限流执行
文章目录使用源码分析一ContextUtil.enter源码分析一SphU.entry源码分析一CtSph.entryWithPriority总结使用ContextUtil.enter 可以调用可以不调用什么时候调用合理? 如果不在意EntranceNode,使用共享EntranceNode则无需调用,内部会自行构建如果希望EntranceNode精确到资源维度则由外部调用,其会根据传递的资源name构建EntranceNode,[前提是当前Context尚不存在]显示构建上下文S原创 2022-02-15 20:54:10 · 3531 阅读 · 0 评论 -
sentinel源码分析第七篇一sentinel-adapter模块一总结
执行链路图除去已经介绍的相关Adapter模块,sentinel还有需要其他Adapter来适配不同的框架本文通过网关->上游服务[webmvc拦截器]-> http请求| dubbo请求-> 下游服务[dubbo消费者] 概述执行链路原创 2022-02-15 20:04:30 · 455 阅读 · 0 评论 -
sentinel源码分析第六篇一sentinel-adapter模块一第四章zuul2网关
文章目录SentinelZuulInboundFilterSentinelZuulOutboundFilterSentinelZuulInboundFilter路由提取器提取资源信息进行限流根据api等信息进行限流发生限流则返回构建ZUUL_CTX_SENTINEL_ENTRIES_KEY信息交由OutBound完成sentinel工作现场清理public class SentinelZuulInboundFilter extends HttpInboundFilter { @Ov原创 2022-02-15 20:00:50 · 407 阅读 · 0 评论 -
sentinel源码分析第五篇一sentinel-adapter模块一第三章Httpclient及OkHttp
文章目录HttpClient使用限流逻辑SentinelApacheHttpClientBuilderOkHttp使用限流逻辑总结HttpClient使用httpclient较为特殊sentinel本身不提供一些切面拦截能力,都是借助第三方sdk提供的能力httpclient需要在构建时由应用程序显示使用SentinelApacheHttpClientBuilder HttpClientBuilder builder = new SentinelApacheHttpClientBuilder原创 2022-02-15 19:42:11 · 1110 阅读 · 0 评论 -
sentinel源码分析第四篇一sentinel-adapter模块一第二章springmvc
文章目录类结构限流逻辑一AbstractSentinelInterceptormvcweb总拦截器和web拦截器资源获取SentinelWebTotalInterceptor资源获取SentinelWebInterceptor总结类结构SentinelWebInterceptor对每一个请求路径构建一个资源交由AbstractSentinelInterceptor执行限流SentinelWebInterceptor对所有请求路径构建同一个资源交由AbstractSentinelInterceptor原创 2022-02-15 18:59:28 · 460 阅读 · 1 评论 -
sentinel源码分析第三篇一sentinel-adapter模块一第一章dubbo
文章目录adapter模块概述源码分析一filter1-DubboAppContextFilter2-BaseSentinelDubboFilter2.1-SentinelDubboConsumerFilter2.2-SentinelDubboProviderFilter总结adapter模块概述adapter模块负责集成常用流量请求框架adapter模块负责对常见框架进行适配构建类似Spring-AOP功能.实现流量拦截,sentinel核心限流逻辑处理针对不同框架的适配协议各不相同dubb原创 2022-02-15 18:57:42 · 924 阅读 · 0 评论 -
sentinel源码分析第二篇一sentinel-dashboard控制台启动与配置
文章目录工作原理push模式工作原理控制台配置规则应用程序监听规则源码分析控制台控制台配置控制台推送apiAddFlowRulepublishRules应用程序客户端改造客户端监听与更新更新实现总结工作原理应用程序启动时需配置控制台地址,使得应用程序与控制台进行交互应用程序负责向控制台注册控制台负责配置规则信息应用程序通过监听等方式拉取rule到本地,等待流量到达依据配置进行限流push模式工作原理控制台配置规则应用程序监听规则源码分析控制台控制台模块是一个轻量级spring原创 2022-02-14 20:41:46 · 1801 阅读 · 0 评论 -
sentinel源码分析第一篇一Sentinel概述
文章目录架构图限流原理图context 与entry关系context 与node关系node自身关系树维护从请求和资源维度看三者关系扩展点一官方原理图架构图整个源码部分以生产环境使用方式为准讲解1.1 Sentinel包含控制台: 配置限流规则[系统规则,权限等]1.2 控制台将规则推送至数据源(zookeeper等)落地1.3 用户进程安装sentinel模块监听zk配置2.1请求进入后交由sentinel-adapter对各模块进行拦截处理2.2 在线程上下文中依据Adapter解原创 2022-02-14 19:52:21 · 402 阅读 · 0 评论