sentinel

文章目录

概念

怎么开局就是大八股 一堆概念

适配多种微服务架构

对需要掌控的资源定义规则,把规则存到注册中心里面


控制台

先下载dashboard yml配置开启

自定义sentinelResource,簇点链路
天哪这就是同步学习的感觉吗

图中,create接口是自动探测的资源 ,createOrder是注解自定义的资源 ,GET是远程调用

(如果没有定义就会变成如下)

自定义流(量)控(制)规则 qps=1 每秒单机只能接受一个请求

这个流控是存在内存的,服务重启就失效

执行效果:


注意这个图(重点)先说异常处理

先看web接口

对应前面的那个异常 用的就是SentinelWebInterceptor

可以看一下AbstractSentinelInterceptor

ctrl+n搜索类 ctrl+h查看类的结构 自己点进去看Exception和SentinelWebInterceptor吧

对应前面提到的几种规则

违背对应规则,就抛出异常,对应有处理方式

调用SphU进入资源保护流程

没有违反,返回true,否则抛出BlockException,处理的时候用DefaultBlockExceptionHandler

自定义返回信息 获取打印异常的class


第二类 sentinel resource 异常 返回默认页

查看SentinelResourceAspect AOP环绕通知

pointcut是这个注解

异常处理其实是看注解上有没有标注blockHandler 没有的话看fallback 也没有的话直接抛出去 异常没人管了

因为一般项目会有全局异常处理器 所以就用这个处理异常就好

搜一篇文章结果发现收藏过的救赎感
关于controllerAdvice注解 感觉就是用于全局的一些

全局异常处理器实现

  1. 定义一个baseException
  2. 定义其他Exception继承这个

最后没有用全局异常处理器是加了handler 定义一个方法

openfeign远程调用

如果有定义fallback就可以返回 否则跟上面一样抛出异常

动态代理 invoke

也是用SphU.entry对资源进行控制

所以也可以自己用SphU硬编码

更多的参考这个吧 sentinel官方文档

流控规则

QPS和并发线程数的效果差不多,不过qps计算是用计数器,比较轻量级,并发线程是统计线程池的线程数量

如果勾选集群模式

单机均摊:就是每一个个体的阈值都为1;总体阈值:所有的加起来的阈值为1

编辑 流控规则 默认就是直接和快速失败

链路就是:比如限制创建订单的资源,但是只针对秒杀的链路进行限制。两条链路如下:

设置入口资源

关联策略:优先写,限流读。就是仅仅在写的请求量大的时候才限流读请求

需要在readDb那里设置规则 关联 关联资源/writeDb

(我就不写了)

相关推荐
Fang fan2 天前
Redis基础数据结构
数据结构·数据库·redis·缓存·bootstrap·sentinel
回到原点的码农3 天前
SpringCloud Gateway 集成 Sentinel 详解 及实现动态监听Nacos规则配置实时更新流控规则
spring cloud·gateway·sentinel
没有bug.的程序员4 天前
黑客僵尸网络的降维打击:Spring Cloud Gateway 自定义限流剿杀 Sentinel 内存黑洞
java·网络·spring·gateway·sentinel
xiaolingting6 天前
Gateway 网关流控与限流架构指南
spring cloud·架构·gateway·sentinel
sc_爬坑之路7 天前
redis windows环境配置读写分离:一主一从 + Sentinel 完整实战
windows·redis·sentinel
sc_爬坑之路7 天前
Linux 部署 Redis:一主一从 + Sentinel 完整实战
linux·redis·sentinel
杜子不疼.7 天前
Spring Cloud 熔断降级详解:用 “保险丝“ 类比,Sentinel 实战教程
人工智能·spring·spring cloud·sentinel
yc_xym9 天前
Redis哨兵(Sentinel)机制
数据库·redis·sentinel
Thomas.Sir9 天前
深入剖析 Sentinel:阿里开源的微服务流量防卫兵
微服务·开源·sentinel
廋到被风吹走23 天前
稳定性保障:限流降级深度解析 —— Sentinel滑动窗口算法与令牌桶实现
运维·算法·sentinel