Sentinel的初步学习和探索

Sentinel是什么

Sentinel的官方标题是:分布式系统的流量防卫兵,实现接口限流。
主要功能有 限流 熔断降级 热点
使用步骤
  1. 导入依赖
	<dependency>
		<groupId>com.alibaba.cloud</groupId>
		<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
	</dependency>
  1. 修改配置文件
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
    sentinel:
      transport:
        dashboard: localhost:8089
        port: 8070  #这个没什么必要,因为占用了他会自己换一个没用的
      eager: true   #这个是开启饥渴模式,不用服务接收到请求后,服务才会去 Sentinel控制台 注册

Sentinel坑

1.@SentinelResource 自定义资源规则

blockHandler: 限流处理方法。只能是本类中的public方法,接收参数与返回参数要与标注方法一致,且接收参数必须要有BlockException否则切入不了,如果要使用外部类的方法就要 搭配blockHandlerClass
blockHandlerClass: 限流处理类。使用外部类的限流方法,此类限流方法一定要用static修饰 否则获取不到

fallback: 降级方法。只能是本类中的public方法,接收参数与返回参数要与标注方法一致,且接收参数必须要有Throwable 参数 否则切入不了,如果要使用外部类的方法就要 搭配fallbackClass
fallbackClass: 降级处理类。使用外部类的限流方法,此类限流方法一定要用static修饰 否则获取不到
注意: 同时有限流和降级方法,都满足触发条件,他会先触发降级方法

defaultFallback: 默认的降级方法,如果同时有defaultFallback和fallback,执行fallback。若是外部类的fallback方法,可以结合fallbackClass一起使用

exceptionsToIgnore(since 1.6.0):用于指定哪些异常被排除掉,不会计入异常统计中,也不会进入 fallback 逻辑中,而是会原样抛出。

entryType: 节点类型 出口流量OUT / 入口流量IN

2.Sentinel注册的应用 重启后限流规则丢失

Sentinel数据持久化 - 采用nacos配置中心存储,还有redis,consul,zookeeper之类的
注意:采用Nacos配置中心去存储,在sentinel新增规则还是会丢失,因为这个存储只是sentinel启动去nacos配置中心取规则,如果想实现sentinel改动规则同步到nacos也是可以实现,要通过修改sentinel源码实现,具体实现可以网上查阅传送门

1.引入依赖

	<dependency>
		<groupId>com.alibaba.csp</groupId>
		<artifactId>sentinel-datasource-nacos</artifactId>
	</dependency>

2.配置文件

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
    sentinel:
      transport:
        dashboard: localhost:8089
        port: 8070
      eager: true
      datasource:
        ds:
          nacos:
            server-addr: 127.0.0.1:8848
            dataId: ${spring.application.name}-sentinel
            groupId: lzj

3.在nacos配置中心创建与配置文件中配置的信息一致的配置文件信息

JSON格式
[{
    "resource": "/hello",
    "limitApp": "default",
    "grade": 1,
    "count": 5,
    "strategy": 0,
    "controlBehavior": 0,
    "clusterMode": false
}]

3.Sentinel 限流配置

传送门1
传送门2

4.Sentinel 降级配置

传送门

5.Sentinel 热点配置

传送门









一键查询淘宝/拼多多内部优惠券,每日大额外卖红包,购物省钱的宝藏工具
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值