3.6 Spring Cloud 实战集成 Sentinel 熔断限流| 学习笔记

简介: 快速学习 3.6 Spring Cloud 实战集成 Sentinel 熔断限流。

开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 3.6 Spring Cloud 实战集成 Sentinel 熔断限流】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/60/detail/1099


3.6 Spring Cloud 实战集成 Sentinel 熔断限流

 

内容介绍

一、阿里巴巴 Sentinel 熔断限流工具

二、阿里巴巴 Sentinel 分布式架构

三、阿里巴巴 Sentinel 实战 SpringCloud 下一节课

 

这节课主要讲的是比较重要的技术 sentinel 来解决熔断限流问题,就像早期的京东淘宝服务器,在双十一时候有时会出现卡死或者瘫痪的时候就需要升级服务器扩大集群,用限流的办法,或者是熔断的办法来保证服务器的正常操作是对于保护系统来说十分重要的策略。

 

一、阿里巴巴 Sentinel 熔断限流工具

1.Alibaba 微服务组件 Sentinel

(1)Sentinel:分布式系统的流量防卫兵(要能监控流量,监控错误,区于某个设置条件来做熔断)

(2)Sentinel:哨兵,流量控制、熔断降级、系统负载保护等多维

度保护服务的稳定性。

保护:保护系统的可控性。

2.Sentinel 新特性

(1)丰富的应用场景: Sentinel 承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。(这里是阿里项目最有说服力的一个地方)

(2)完备的实时监控: Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至500台以下规模的集群的汇总运行情况。

(3)广泛的开源生态: Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。

(Sentinel 并不是只针对 spring cloud,他是针对整个 jar war 分布式的一个生态,服务于多种分布式的一个场景)

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

3.Sentinel 对比 Hystrix

对比内容

Sentinel

Hystrix

 

隔离策略

信号量隔离

线程池隔离/信号量隔离

熔断降级策略

基于响应时间或失败比率

基于失败比率

实时指标实现

滑动窗口

滑动窗口(基RxJava)

规则配置

支持多种数据源

支持多种数据源

扩展性

多个扩展点

插件的形式

基于注解的支持

支持

支持

限流

基于QPS,支持基于调用关

不支持

流量整形

支持慢启动、匀速器模式

不支持

系统负载保护

支持

不支持

控制台

开箱即用,可配置规则、查看秒级监控、机器发现等

不完善

常见框架的适配

Servlet、Spring Cloud、Dubbo、gRPC等

Servlet、Spring Cloud Netflix

 


二、阿里巴巴 Sentinel 分布式架构

1. Sentinel 的逻辑架

实时监控

(熔断限流的基础,监控指标才能判断他是否是熔断)

机器发现

 

规则配置

Sentinel控

制台

SpringCloud

流量控制

线程数隔离

 

慢调用降级

 

调用链路

 

Dubbo

 

速率控制

集群限流

 

异常熔断

 

系统自适应保护

 

gRPC

 

调用关系限流

 

热点限流

 

削峰填谷

 

来源访问控制

ServiceMesh

(它的工作层次更偏向底层的网络调度,与其他的不太一样)

动态规则配置(ZooKeeper,Nacos,Apollo)

2. Sentinel 的开源生态

image.png

他的生态较为完善,对接了各种不同的分布式场景,nginx 也可以集成,基本对接了所有的技术。

 

三、阿里巴巴 Sentinel 实战 SpringCloud 下一节课

首先,如果想熔断微服务,将 Sentinel 的调度端先改造一下。首先 Sentinel 的依赖包,

<dependency>

<groupId>com.alibaba.cloud</groupId>

<artifactId>spring-cloud-starter-alibaba-sentinel</artif<version>2.2.3.RELEASE</ version>

</ dependency>

这里对应的依赖要加进来,其次看制作中心,首先采集数据

#监控数据源要暴露地址

management.endpoints.web.exposure.include=*

其次要配 Sentinel 的地址,

#sentinel

spring.cloud.sentinel.transport.dashboard=127.0.0.1:8080feign.sentinel.enabled=true

指的是可以单独和 sentinel 集成没有可以单独去搜 sentinel,去下载。其次是找到 quick start,找到并加入它的包:

image.png

之后在E盘启动他的 jar 包找到他的监控面板,之后在浏览器8080登录,此时还没有实现监控,接下来调用微服务,来触发一次监控、数据采集,这个程序是9001 8087。熔断主要是和 sentinel 来对接起来,之后用改造过的9002启动,通过9002端口结合熔断的一个配置来实现熔断操作,9002与9001区别是9001的点熔端没有启用熔断。此时就有一些程序了比如实时监控等,包括请求次数等。流控规则:里面主要是有熔断限流等。此时用 hello java.调用,此时就在实时监控看到两个地方在调用并且变化是不一样的。此时如果触发熔断,在hi的上面加一个流控,阈值类型选择 QPS,单机阈值达到一个时就触发,这个只对 hi 起作用。此时这个 hi,此时就实现熔断最高就是一次。Hello 还是正常的。所以说 sentinel 控制台1.8.0是十分强大的工具,有监控,有降级,有热点,有授权等一系列工具,

和 spring cloud 也是十分支持。

相关文章
|
3月前
|
Java UED Sentinel
微服务守护神:Spring Cloud Sentinel,让你的系统在流量洪峰中稳如磐石!
【8月更文挑战第29天】Spring Cloud Sentinel结合了阿里巴巴Sentinel的流控、降级、熔断和热点规则等特性,为微服务架构下的应用提供了一套完整的流量控制解决方案。它能够有效应对突发流量,保护服务稳定性,避免雪崩效应,确保系统在高并发下健康运行。通过简单的配置和注解即可实现高效流量控制,适用于高并发场景、依赖服务不稳定及资源保护等多种情况,显著提升系统健壮性和用户体验。
82 1
|
3月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
114 1
|
4月前
|
NoSQL Java Nacos
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
132 3
|
2月前
|
Java 数据中心 Sentinel
spring boot sentinel 的使用
要实现Spring Boot集成Sentinel的熔断降级,需引入Sentinel依赖并配置Dashboard地址;使用`@SentinelResource`注解定义受保护资源及blockHandler处理降级逻辑;通过Sentinel Dashboard配置熔断规则,如异常比例或响应时间。启动应用后,测试熔断功能,确保Sentinel正常工作。建议动态调整规则以提升系统稳定性。
|
4月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
14905 29
|
3月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
3月前
|
jenkins 持续交付
jenkins学习笔记之六:共享库方式集成构建工具
jenkins学习笔记之六:共享库方式集成构建工具
|
3月前
|
算法 NoSQL Java
spring cloud的限流算法有哪些?
【8月更文挑战第18天】spring cloud的限流算法有哪些?
86 3
|
3月前
|
jenkins 持续交付
jenkins学习笔记之九:jenkins认证集成github
jenkins学习笔记之九:jenkins认证集成github
|
3月前
|
安全 jenkins 持续交付
jenkins学习笔记之八:jenkins认证集成gitlab
jenkins学习笔记之八:jenkins认证集成gitlab
下一篇
无影云桌面