springcloud alibaba(五)Sentinel实现流控与降级

文章目录

Sentinel实现流控与降级

1、什么是Sentinel

Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量

为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。

2、Sentinel 的特征
2.1、丰富的应用场景

Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即

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

应用等。

2.2、完备的实时监控

Sentinel 提供了实时的监控功能。通过控制台可以看到接入应用的单台机器秒

级数据, 甚至 500 台以下规模的集群的汇总运行情况。

2.3、广泛的开源生态:

Sentinel 提供开箱即用的与其它开源框架/库的整合模块, 例如与 Spring

Cloud、Dubbo、gRPC 的整合。只需要引入相应的依赖并进行简单的配置即可快速地接入

Sentinel。

2.4、完善的 SPI 扩展点

Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

3、安装Sentinel控制台
3.1、Sentinel下载

Sentinel下载地址

3.2、启动控制台

//直接使用jar命令启动项目(控制台本身是一个SpringBoot项目)

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -

Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.0.jar

3.3、访问Sentinel控制台

访问http://localhost:8080, 进入控制台, 默认用户名/密码均是sentinel


如果看到上述2个图片的话,说明Sentinel控制安装成功

4、微服务集成Sentinel
4.1、微服务pom.xml中加入sentinel依赖
xml 复制代码
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
4.2、微服务application.yml中添加sentinel配置
yaml 复制代码
spring:
  cloud:
    sentinel:
      transport:
        port: 9999 # 跟控制台交流的端口, 随意指定一个未使用的端口即可
        dashboard: 127.0.0.1:8080 # 指定控制台服务的地址
4.3、微服务定义方法并启动微服务
java 复制代码
package com.goblin.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 订单Sentinel前端控制器
 * <br>
 * 用来进行sentinel的学习
 */
@RestController
public class OrderSentinelController {

    @GetMapping("/message1")
    public String message1() {

        return "message1";
    }

}
4.4、Sentinel控制台查看微服务资源
5.流控

未完待续

相关推荐
YOU OU3 小时前
Spring IoC&DI
java·数据库·spring
小江的记录本6 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)
java·数据库·python·mysql·spring·面试·maven
云烟成雨TD7 小时前
Spring AI Alibaba 1.x 系列【58】Spring AI Alibaba Builtin Nodes 模块介绍
java·人工智能·spring
小江的记录本7 小时前
【Java基础】反射与注解:核心原理、自定义注解、注解解析方式(附《思维导图》+《面试高频考点清单》)
java·数据结构·python·mysql·spring·面试·maven
smileNicky8 小时前
Spring框架懒加载怎么实现?
python·spring·rpc
yychen_java9 小时前
IDEA × Qoder:告别“手写Spring”,进入AI协作开发新时代
人工智能·spring·intellij-idea
未若君雅裁9 小时前
Spring Bean 作用域、线程安全与生命周期
java·安全·spring
Ting-yu11 小时前
Spring AI Alibaba零基础速成(5) ---- Memory(记忆)
java·人工智能·后端·spring
月落归舟11 小时前
一文掌握Spring AOP:从入门到底层原理
java·后端·spring
XiYang-DING11 小时前
【Spring】SpringMVC
java·后端·spring