day05-Sentinel限流熔断

Sentinel 是阿里巴巴提供的服务容错方案,用于保障系统的稳定性。本文详细介绍了Sentinel的安装、限流和降级的配置与实践,包括直连、关联和链路模式的流控规则,以及慢调用比例、异常比例和异常数量的降级策略。Sentinel 控制台用于设置和监控流控规则,通过它可以观察和管理微服务的流量情况。
摘要由CSDN通过智能技术生成

Sentinel

1. 干嘛用的?

淘宝、天猫、京东、拼多多等平台上参与商品的秒杀、抢购/刷票等,无一例外的会引起服务器流量的暴涨,导致网页无法显示、APP反应慢、功能无法正常运转,甚至会引起整个网站的崩溃。为保证各种业务安全运营,系统在任何情况下都不会崩溃呢?我们可以在系统负载过高时,采用限流、降级和熔断,三种措施来保护系统, Sentinel 为此诞生

2.介绍

Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
–核心库(Java 客户端):能够运行于所有 Java 运行时环境,同时对Dubbo /Spring Cloud 等框架也有较好的支持。
–控制台(Dashboard):基于 Spring Boot 开发,打包后可以直接运行。

3. 安装

sentinel下载

在这里插入图片描述

在sentinel对应目录,打开命令行,cmd, 输入下面命令,启动运行

java -Dserver.port=8180 -Dcsp.sentinel.dashboard.server=localhost:8180 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar

检测启动过程
在这里插入图片描述
访问Sentinal服务
在这里插入图片描述

4.Sentinel限流

系统中的数据库连接池,线程池,nginx的瞬时并发,MQ消息等在使用时都会跟定一个限定的值,这本身就是一种限流的设计。限流的目的防止恶意请求流量、恶意攻击,或者防止流量超过系统峰值。

4.1 添加依赖

Sentinel 应用于服务消费方(Consumer),

        <!--限流依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!--打开springboot的监控功能-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

4.2 添加配置信息

打开服务消费方配置文件application.yml,添加sentinel配置

spring:
  cloud:
    sentinel:
      transport:
         port: 8099 			   #默认端口8719,跟sentinel控制台交流的端口,随意指定一个未使用的端口即可
         dashboard: localhost:8180 # 指定sentinel控制台地址。

启动服务提供者,服务消费者,然后在浏览器访问消费者url
在这里插入图片描述
刷新sentinel 控制台,检测服务列表
在这里插入图片描述
Sentinel的控制台其实就是一个SpringBoot编写的程序,我们需要将我们的服务注册到控制台上,即在微服务中指定控制台的地址,并且还要在消费端开启一个与sentinel控制台传递数据端的端口,控制台可以通过此端口调用微服务中的监控程序来获取各种信息。

4.3 控制台设置

设置一下指定接口的流控(流量控制),QPS(每秒请求次数)单机阈值为1,代表每秒请求不能超出1次,要不然就做限流处理,处理方式直接调用失败。

选择要限流的链路
在这里插入图片描述
设置限流策略
在这里插入图片描述
反复刷新访问消费端端服务,检测是否有限流信息输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值