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 也是十分支持。

相关文章
|
2月前
|
存储 JavaScript 开发工具
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
本次的.HarmonyOS Next ,ArkTS语言,HarmonyOS的元服务和DevEco Studio 开发工具,为开发者提供了构建现代化、轻量化、高性能应用的便捷方式。这些技术和工具将帮助开发者更好地适应未来的智能设备和服务提供方式。
76 8
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
|
3月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
93 3
|
7月前
|
负载均衡 Java 开发者
Spring Cloud实战:构建分布式系统解决方案
Spring Cloud实战:构建分布式系统解决方案
|
5月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
1月前
|
人工智能 安全 Java
AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
本次分享由阿里云智能集团云原生微服务技术负责人李艳林主讲,主题为“AI时代:从Spring Cloud Alibaba到Spring AI Alibaba”。内容涵盖应用架构演进、AI agent框架发展趋势及Spring AI Alibaba的重磅发布。分享介绍了AI原生架构与传统架构的融合,强调了API优先、事件驱动和AI运维的重要性。同时,详细解析了Spring AI Alibaba的三层抽象设计,包括模型支持、工作流智能体编排及生产可用性构建能力,确保安全合规、高效部署与可观测性。最后,结合实际案例展示了如何利用私域数据优化AI应用,提升业务价值。
143 4
|
2月前
|
SpringCloudAlibaba 负载均衡 Dubbo
【SpringCloud Alibaba系列】Dubbo高级特性篇
本章我们介绍Dubbo的常用高级特性,包括序列化、地址缓存、超时与重试机制、多版本、负载均衡。集群容错、服务降级等。
【SpringCloud Alibaba系列】Dubbo高级特性篇
|
2月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
2月前
|
SpringCloudAlibaba JavaScript Dubbo
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
本文介绍了 Dubbo-Admin 的安装和使用步骤。Dubbo-Admin 是一个前后端分离的项目,前端基于 Vue,后端基于 Spring Boot。安装前需确保开发环境(Windows 10)已安装 JDK、Maven 和 Node.js,并在 Linux CentOS 7 上部署 Zookeeper 作为注册中心。
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
|
2月前
|
SpringCloudAlibaba Dubbo Java
【SpringCloud Alibaba系列】Dubbo基础入门篇
Dubbo是一款高性能、轻量级的开源Java RPC框架,提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册和发现、运行期流量调度、可视化服务治理和运维等功能。
【SpringCloud Alibaba系列】Dubbo基础入门篇
|
1月前
|
人工智能 自然语言处理 Java
Spring Cloud Alibaba AI 入门与实践
本文将介绍 Spring Cloud Alibaba AI 的基本概念、主要特性和功能,并演示如何完成一个在线聊天和在线画图的 AI 应用。
362 7

热门文章

最新文章