[toc]
## 基本概念
### 资源
资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。
只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。
### 规则
围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。
### 什么是熔断降级
除了流量控制以外,降低调用链路中的不稳定资源也是 Sentinel 的使命之一。由于调用关系的复杂性,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积。
当调用链路中某个资源出现不稳定,例如,表现为 timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终产生雪崩的效果。
## 源码阅读概念
### Entry
Entry在英文中直译为大门、入口,在很多源码中,被作为元素单位的存在。
在 Sentinel 里面,所有的资源都对应一个资源名称以及一个 Entry。Entry 可以通过对主流框架的适配自动创建,也可以通过注解的方式或调用 API 显式创建;每一个 Entry 创建的时候,同时也会创建一系列功能插槽(slot chain)。
总结一下便是:`Entry是针对资源创建的限流实现,其具体功能由一系列功能插槽组成`。
### Node
![](https://img.kancloud.cn/70/7f/707f027c6a49161b01c3a545a1715b7b_407x344.png)
- StatisticNode: 统计节点,是Node接口的实现类,用于完成数据统计
- EntranceNode: 入口节点,一个Context会有一个入口节点,用于统计当前Context的总体流量数据
- DefaultNode: 默认节点,用于统计一 个资源在当前Context中的流量数据
- ClusterNode:集群节点,用于统计一个资源在所有Context中的总体流量数据
![](https://img.kancloud.cn/1e/6b/1e6b9967ab0adb644657caef25ef861c_825x704.png)
#### StatisticNode
#### EntranceNode
EntranceNode是NodeSelectorSlot中的调用路径节点。我们先来看一下EntranceNode中都有哪些数据:
```
EntranceNode: machine-root(t:0 pq:1 bq:0 tq:1 rt:0 prq:1 1mp:0 1mb:0 1mt:0)
-EntranceNode1: Entrance1(t:0 pq:1 bq:0 tq:1 rt:0 prq:1 1mp:0 1mb:0 1mt:0)
--nodeA(t:0 pq:1 bq:0 tq:1 rt:0 prq:1 1mp:0 1mb:0 1mt:0)
-EntranceNode2: Entrance1(t:0 pq:1 bq:0 tq:1 rt:0 prq:1 1mp:0 1mb:0 1mt:0)
--nodeA(t:0 pq:1 bq:0 tq:1 rt:0 prq:1 1mp:0 1mb:0 1mt:0)
```
其中:
* t:threadNum
* pq:passQps
* bq:blockedQps
* tq:totalQps
* rt:averageRt
* prq: passRequestQps
* 1mp:1m-passed
* 1mb:1m-blocked
* 1mt:1m-total
![](https://img.kancloud.cn/b3/bb/b3bbaf6d837f0e05f15d7916de5da32e_2830x1961.png)
1. 滑动窗口实现原理
#### 什么是SPI接口?
SPI接口是功能可扩展接口。
3.
## 参考资料
[官网:Sentinel工作流程](https://sentinelguard.io/zh-cn/docs/basic-implementation.html)
- 写在前面
- 如何阅读源码
- 第一部分 开源框架
- Netty
- 启动过程
- SpringSecurityOauth2
- Quartz
- quartz启动原理
- quartz定时调度任务触发流程
- 第二部分 优质中间件源码分析
- Canal
- Canal是如何伪装为mysql的slave的?
- canal源码调试
- Sentinel
- 核心概念梳理
- 滑动窗口实现原理
- jvm-sandbox
- jvm-sandbox-repeater
- Windows环境安装
- 结果比对
- 第三部分 优质行业项目源码分析
- 第一章 分库分表实践
- sharding-jdbc
- 第二章 DDD领域驱动
- 享同科技DDD开源框架
- J-IM
- 功能测试
- 悟空CRM
- 项目搭建
- 默认密码
- dataX-web
- 项目搭建
- 部署报错
- dolphinscheduler
- awescnb
- geek
- chrome插件-funds
- 优质开源项目备忘