手把手教你如何从官网学习Sentinel技术

前言

本文适用于刚刚接触微服务,且刚刚接触限流,熔断,服务降级等概念的读者来进行Sentinel技术的入门和熟悉。笔者第一次学习Sentinel时,也是一脸茫然,无从学起。如果你也有这种感觉,说明对分布式以及微服务的相关概念和思想还不了解,需要先补充一下底层的概念和知识,相关文章笔者已经提供,可阅读如下文章进行知识铺垫:
微服务中的服务雪崩及相关解决方案
有了以上的铺垫,在阅读Sentinel官网时,也会感觉很乱,跳来跳去的,笔者整理了一下从官网学习Sentinel的思路和方法,下面就跟笔者一起来看Sentinel官方教程吧。

一、Sentinel与SpringBoot/SpringCloud Alibaba整合

Sentinel适配了几乎所有常用框架。如Spring框架,Web框架,等等。而最常用的场景还是结合SpringBoot和Alibaba使用。所以这里直接学习整合SpringBoot和Alibaba即可。SpringBoot/Alibaba整合Sentinel
在SpringBoot/Alibaba融合Sentinel时,会用到@SentinelResource注解,所以,在学习SpringBoot/Alibaba整合Sentinel的官方文档中,会有@SentinelResource注解的讲解。需要一并学习了。
直接查阅官方文档就可以学习,这里不过多赘述,而是记录一下学习中遇到的问题。

  1. @SentinelResource注解中entryType属性值的意思:
    EntryType.OUT:
    EntryType.IN:

  2. 当Sentinel保护的资源发生限流时,会抛出BlockException异常。

  3. @SentinelResource注解中,blockHandler属性是配置发生限流后,抛出BlockException异常后的回调函数。fallback属性是定义被保护的资源发生异常后的回调函数。那么发生BlockException后,这俩属性,到底哪个回调会执行呢?官方文档给出了答案:

特别地,若 blockHandler 和 fallback 都进行了配置,则被限流降级而抛出 BlockException 时只会进入 blockHandler 处理逻辑。若未配置 blockHandler、fallback 和 defaultFallback,则被限流降级时会将 BlockException 直接抛出(若方法本身未定义 throws BlockException 则会被 JVM 包装一层 UndeclaredThrowableException)。

  1. Sentinel对Fegin和RestTemplate的兼容,其本质是将Fegin和RestTemplate当作了一个资源,在调用系统中,对这些资源做了保护和监测。其保护的对象,其实是被调用的服务,但是却没有在被调用的服务里加Sentinel的资源,而是加在了调用服务的一方,服务的熔断和降级,也是在调用服务的一方定义的,而不是被调用服务的一方。这个关系一定要清楚。

上述知识点仅限于SpringBoot/Alibaba对Sentinel的简单整合。具体的细节,下面我们展开讨论。

二、整合后Sentinel规则的定义

Sentinel在SpringBoot/Alibaba中定义资源,在@SentinelResource中已经定义好。Sentinel的两大核心是资源和规则,接下来,该定义规则了。

Sentinel 支持以下几种规则:流量控制规则、熔断降级规则、系统保护规则、来源访问控制规则 和 热点参数规则。

流量规则:
具体规则配置如下:
在这里插入图片描述
可见,流量的规则就是在定义好资源后,再定义一下该资源的访问量阈值,限流策略等等的配置。我们可以根据不同的资源,来选择不同的策略进行配置。
具体的配置项含义,官方文档有讲解,地址为:流量规则

熔断降级规则:
在这里插入图片描述
可见,熔断规则,其实就是将熔断器的几个重要数据,做成了规则,让程序员自己去定义而已。
上述配置项的具体含义和实例,官方文档也有讲解,地址为:
熔断降级规则

系统保护规则:
在这里插入图片描述
由配置项可知是对整体某个服务做的一些监测保护的配置项。
详情查看官网地址:系统保护规则

集群流量控制:
微服务中,每个服务都是多实例的,所以,定义了每个服务中资源的流量阈值,比如10,然后这个服务有10个实例,那么这个资源的总流量就是100。但是这100个请求,会均匀分配到10个实例上去么,但凡有不均匀分配的,那么就会有限流。所以这是有问题的。
Sentinel为这个问题提供了解决方案,具体地址为:集群流量控制规则

网关流量控制:
Sentinel提供了网关的流量控制,具体 地址:网关流量控制
来源访问控制规则:
黑白名单机制
热点参数规则:
Sentinel的限制和保护,可以做到参数级别,进行参数级别的控制。

算了,实在看不下去了,等用到了再详细研究,这样没有应用场景的单纯研究真的很难看下去!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码的小小酥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值