核心知识点:
- 服务限流、降级的背景(服务的治理)
- Sentinel限流入门实践(控制台8180-定义规则,客户端服务应用规则:依赖,配置)
- Sentinel常用限流模式(直接,关联->保证核心业务,链路->红绿灯)
- @SentinelResource注解作用及限流异常处理(AOP设计)
- 自定义异常限流处理类(SentinelBlockExceptionHandler)
常见问题分析:
- 为什么要进行限流、降级? (系统处理能力有限,可以通过限流方式,保证系统可靠运行)
- 你了解Sentinel限流有哪些算法? (计数器,令牌桶,漏桶,滑动窗口算法~sentinel默认)
- Sentinel常用限流模式?(直接,关联->保证核心业务,链路->红绿灯)
- @SentinelResource注解的作用,你用过哪些属性?(在链路限流中描述资源节点)
- Sentinel常用限流效果有哪些?(快速失败,预热,排队)
- Sentinel中限流被触发时出现的异常类型是什么?(都是BlockException类型的子类)
- 如何对限流结果进行处理?(有默认处理方案,我们也可以自己定义处理规则-实现BlockExceptionHandler接口)
- Sentinel限流的基本原理?(底层对服务请求进行拦截,然后通过流控规则限定对资源访问)
常见Bug分析:
- sentinel 服务启动不起来?(要配置jdk环境变量path,要使用JDK8版本)
- sentinel 面板不显示我们的服务?(依赖,配置>一定要注意缩进,先访问,放大招-清idea缓存重启)
- 配置完sentinel后,业务服务启动不了了?(大部分都是配置错了)
Sentinel 进阶应用:
核心知识点:
- Sentinel降级(熔断)入门实现(出现不稳当的系统服务时,暂停对此服务的访问)
- Sentinel实现热点参数限流(热点视频,文章,…)
- Sentinel系统规则配置(例如cpu使用率,QPS,…),
- Sentinel授权规则配置(黑白名单,黑白设计由业务决定)
常见问题分析:
- 如何理解熔断?(可以理解为暂时关闭不稳定的服务,要学会舍得)
- 如何自定义熔断异常处理规则?(实现BlockExceptionHandler接口)
- 如何理解热点参数?(频繁访问的数据,系统底层如何判定哪些数据是频繁访问-lru)
- 系统规则是全局规则吗,常见规则有哪些? (是,响应时间-RT,QPS,CPU,线程数)
- 授权规则需要我们自己写请求解析类吗?(需要,实现RequestOriginParser接口)