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

未完待续

相关推荐
山荷枝2 小时前
03-框架--Spring
java·后端·spring
952364 小时前
Spring-cloud配置中心
java·spring·spring cloud·微服务
真上帝的左手5 小时前
10. 软件设计&架构-Spring Security 7 整合CAS SSO 单点登录
java·spring·架构·sso
9523610 小时前
Sentinel
java·后端·spring·sentinel·springcloud
为美好的生活献上中指14 小时前
Spring AI Advisor 深度实战:构建严谨的 AI Agent 拦截链
java·人工智能·spring·advisor·aiagent
ruofu3314 小时前
如何让docker使用提前下载好的镜像,而不是在线拉取
java·spring cloud·docker
爱敲键盘的猴子14 小时前
深入理解 Spring IoC -- 基于 XML 的 Bean 配置详解
xml·java·spring
萧瑟余晖1 天前
Java深入解析篇十七之Spring Security
java·开发语言·spring
Flittly1 天前
【雕虫大技】Agent 动态 Skill 供应链安全加固(二):执行隔离沙箱实战
java·spring boot·spring
渣渣盟2 天前
当 Redis 集群发生主从切换(Failover)时,Flink 任务会崩溃吗?如何利用 Sentinel 实现高可用?
redis·flink·sentinel