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

未完待续

相关推荐
过期动态17 小时前
Java开发中的@EnableWebMvc注解和WebMvcConfigurer接口
java·开发语言·spring boot·spring·tomcat·maven·idea
JavaGuide1 天前
推荐一个基于 Spring Boot 4.0 + Java 21 + Spring AI 2.0 的大模型项目!
java·spring boot·spring
NE_STOP1 天前
spring6-多种类型的注入方式
spring
小马爱打代码1 天前
Spring Boot :使用 Spring Cache 注解方式集成 Redis
spring boot·redis·spring
有味道的男人1 天前
1688获得商品类目调取商品榜单
java·前端·spring
树码小子1 天前
SpringMCV(9)响应:返回静态页面 & 修改响应数据
spring·mvc
Remember_9931 天前
Spring 事务深度解析:实现方式、隔离级别与传播机制全攻略
java·开发语言·数据库·后端·spring·leetcode·oracle
roman_日积跬步-终至千里1 天前
【Java并发】用 JMM 与 Happens-Before 解决多线程可见性与有序性问题
java·开发语言·spring
独断万古他化1 天前
【Spring 核心:AOP】基础到深入:思想、实现方式、切点表达式与自定义注解全梳理
java·spring·spring aop·aop·切面编程
树码小子1 天前
SpringMVC(10)综合案例练习:计算器,登录
spring·mvc