欢迎光临散文网 会员登陆 & 注册

学习记录之Nacos及Sentinel

2022-08-03 19:41 作者:星月袭空  | 我要投稿

Sentinel也是Spring Cloud Alibaba的组件

Sentinel英文翻译"哨兵\门卫"

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

为什么需要Sentinel

  • 丰富的应用场景

    双11,秒杀,12306抢火车票

  • 完备的实时状态监控

    可以支持显示当前项目各个服务的运行和压力状态,分析出每台服务器处理的秒级别的数据

  • 广泛的开源生态

    很多技术可以和Sentinel进行整合,SpringCloud,Dubbo,而且依赖少配置简单

  • 完善的SPI扩展

    Sentinel支持程序设置各种自定义的规则

基本配置和限流效果

我们的限流针对的是控制器方法

我们找一个简单的模块来测试和观察限流效果

在csmall-stock-webapi模块中

添加sentinel的依赖

application-dev.yml文件添加配置

下面进行限流操作,在要限流的控制器方法前添加注解

代码编写完毕,打开浏览器http://localhost:8080/ 会看到下面的界面

用户名和密码都是 sentinel 第一次运行控制器方法后,就可以在"簇点链路"中找到流控选项了!

自定义限流方法

对与被限流的请求,我们可以自定义限流的处理方法

默认情况下可能不能正确给用户提示,一般情况下,对被限流的请求也要有"服务器忙请重试"或类似的提示

StockController类中@SentinelResource注解中,可以定义处理限流情况的方法

再次尝试被限流,观察被限流的提示

QPS与并发线程数

QPS:是每秒请求数

单纯的限制在一秒内有多少个请求访问控制器方法

并发线程数:是当前正在使用服务器资源请求线程的数量

限制的是使用当前服务器的线程数

自定义降级方法

所谓降级就是正常运行控制器方法的过程中

控制器方法发生了异常,Sentinel支持我们运行别的方法来处理异常,或运行别的业务流程处理

我们也学习过处理控制器异常的统一异常处理类,和我们的降级处理有类似的地方

但是Sentinel降级方法优先级高,而且针对单一控制器方法编写

StockController类中@SentinelResource注解中,可以定义处理降级情况的方法



学习记录之Nacos及Sentinel的评论 (共 条)

分享到微博请遵守国家法律