当前位置: 首页 > news >正文

sentinel原理源码分析系列(四)-ContextEntry

        启动和初始化完成后,调用者调用受保护资源,触发sentinel的机制,首先构建或获取Context和获取Entry,然后进入插槽链,决定调用是否通过,怎样通过

上图展示构建Context和获取Entry的类互动图

获取或构建Context

调用者使用ContextUtils获取/构建Context,Context是资源调用上下文,Entry和Node挂在其内,作为后面插槽的链路结构,统计指标的容器

上面2图,分别是spring mvc,web servlet获取或构建Context,可以看到,各个适配器负责生成contextName和origin

SphU内也有使用ContextUtils构建Context,没有origin参数,有些适配器没有显式使用ContextUtils构建Context

获取Entry

很多分析sentinel的文章Entry翻译为令牌或凭证,我觉得签证更合适,填写签证申请是出国的必备,但能不能出国,还要看你签证面试,好比插槽能不能通过

代码比较简单,我们看构建Context和获取Entry 后的Context快照

上图是Context&Entry后的Context后的快照

  • ROOT:EntranceNode全局的,启动和初始化介绍过,持有所有Context调用入口EntranceNode,用于处理dashboard的查询请求
  • Context的EntranceNode  该Node先尝试从静态类变量ContextUtils的contextNameNodeMap获取,新建的放在该Map,key是context.name,context.name是适配器的维度,因此EntranceNode代表的是适配器的入口,但目前看来没使用
  • 调用Entry,可以parent/child级联,构建调用关系,上面提过origin也是用来构建调用关系,Context在线程变量,多次进入是同一个线程或多线程复制线程,支持本地调用,本地调用的适配器aop没有origin

插槽链

调用资源需要获得Entry,插槽链好比是一道道的检查口,通过检查颁发调用Entry,允许调用资源

上图构建集群节点,可以看到同一资源使用同一个chain实例,下面借用网一个图解释插槽链怎样构建

上图插槽链结构,链表结构,构建插槽链就是构建链表,插槽有前后关系,大致分为:

调用链路->统计->功能插槽(系统/限流/降级)

用户可以实现自己的提供者(Provider),构建自己的插槽链

NEXT 下一篇开始分析插槽链

http://www.lryc.cn/news/466354.html

相关文章:

  • Tcp协议讲解与守护进程
  • 学习threejs,THREE.LineDashedMaterial 虚线材质,基于gosper高斯帕曲线生成雪花动画
  • LeetCode 热题100之哈希
  • 软工——模块设计(爱啦爱啦)
  • Xmind一款极简思维导图和头脑风暴软件,支持PC和移动端,Xmind 2024.10.01101版本如何升级到Pro版?简单操作,最新可用!
  • 自动化工具:Ansible
  • 我是类(最终版)
  • 详解ip route
  • OpenGL进阶系列04 - OpenGL 点精灵
  • VSCode按ctrl与鼠标左键无法实现跳转的解决办法
  • U盘数据丢失不用慌,这4个工具可以帮你恢复。
  • 如何在Ubuntu上挂载一块硬盘:详解方案与实操步骤【小白无坑版】
  • 【JAVA】第三张_Eclipse下载、安装、汉化
  • go-zero系列-限流(并发控制)及hey压测
  • Electron-(三)网页报错处理与请求监听
  • 银河麒麟(debian)下安装postgresql、postgis
  • 【已解决】【Hadoop】 Shell命令易错点及解决方法
  • ST7789读取ID错误新思路(以STC32G为例)
  • 【MySQL】入门篇—基本数据类型:使用ORDER BY进行排序
  • java线程池bug的一些思考
  • 深入解析浮动布局及其在现代Web开发中的应用与替代(浮动的概念及应用、如何清除浮动、使用Flex布局和Grid布局的区别、使用`float`布局的历史和现状)
  • WPF基础权限系统
  • 【Java函数篇】Java 8 Predicate函数接口的用法详解
  • C++ 一个反射的例子
  • vue3 解决背景图与窗口留有间隙的问题
  • Cesium for UE-04-一些说明
  • AIGC:开启智能创造的璀璨新篇章
  • 计算机组成原理与系统结构——外部存储器
  • 如何使用 Browserless 抓取动态网站?
  • 第21~22周Java主流框架入门-Spring 2.SpringAOP面向切面编程