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.流控

未完待续

相关推荐
our_times7 分钟前
2026年Java开发者破局指南:Spring AI 2.0 与 Agent 开发实战
java·人工智能·spring
wear工程师1 小时前
@Transactional 标了却没开事务?先看这次调用有没有经过代理
java·spring
野蛮人6号2 小时前
黑马天机学堂系列问题之域名无法正常使用
java·spring cloud·天机学堂
静水楼台x4 小时前
spring security
java·数据库·spring
咖啡八杯13 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
糖果店的幽灵13 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
Suhan4219 小时前
IDEA 设置启动参数和环境变量
spring boot·spring·编辑器·idea
橘子海全栈攻城狮1 天前
【最新源码】基于SpringBoot + Vue的超市管理系统的设计与实现D002
java·开发语言·vue.js·spring boot·后端·spring
空中湖1 天前
Spring AI Function Calling 完全指南:让 AI 查数据库、调 API、发通知
数据库·人工智能·spring
风起洛阳@不良使1 天前
spring中xml和注解开发的对比
xml·java·spring