【第四阶段 day25】Sentinel简介 Sentinel限流 Sentinel流控规则分析

本文介绍了Sentinel这一分布式系统流量防卫兵,它提供了限流、降级等服务保护措施。Sentinel通过设置限流阈值和模式,如QPS、线程数,实现对服务的保护。文中详细阐述了Sentinel限流的过程,包括添加依赖、配置、创建Controller和测试,并分析了Sentinel的流控规则,如阈值类型、限流模式(直接、关联、链路)。最后提到了Sentinel在降级应用中的作用。
摘要由CSDN通过智能技术生成

1.Sentinel简介

  • 我们如何在业务流量变化无常的情况下,保证各种业务安全运营,系统在任何情况下都不会崩溃呢?
  • 我们可以在系统负载过高时,采用限流,降级和熔断,三种措施来保护系统,由此一些流量控制中间件诞生,例如sentinel

1.1 概述

sentinel(分布式系统的流量防卫兵)是阿里开源的一套用于服务容错的综合性解决方案,他以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度来保护服务的稳定性

承接:

  • 秒杀(突发流量控制在系统容量可以承受的范围)
  • 消息削峰填谷
  • 集群流量控制
  • 实时熔断下游不可用应用

核心:

  • 核心库(java客户端):能够运行于所有java运行时环境,同时对Dubbo/Spring Cloud 等框架有较好的支持
  • 控制台(Dashboard):基于Spring Boot开发,打包后可以直接运行

2.Sentinel限流

2.1 概述

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

2.2 过程

2.2.1 Sentinel应用于服务的提供方(sca-provider),在pom中添加依赖
<!--添加sentinel依赖,此依赖添加以后,会在我们的项目中添加一个拦截器
            这个拦截器会指定请求进行拦截,然后检测你的请求是否在限流的范围内,假如在这个范围内
            就会对请求进行限流操作-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
2.2.2 在配置文件中,添加Sentinel配置

在这里插入图片描述

spring:
  cloud:
    sentinel:
      transport:
         dashboard: localhost:8180 # 指定sentinel控制台地址。
2.2.3 创建一个Controller对象,用于演示限流操作

在这里插入图片描述

package com.jt.provider.controller;

import org.springframework
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值