开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(十八)

简介: Spring Cloud微服务架构设计与开发实战课时2.7—Java Spring Cloud熔断限流 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

哈喽各位同学们大家好呀,今天是开发者学院中课程“Spring Cloud微服务架构设计与开发实战”的章节二的Java Spring Cloud熔断限流 ”干货总结~是一起学习新课程吧!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:Java Spring Cloud熔断限流

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

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java



Java Spring Cloud熔断限流



咱们这节课看一下如何实现熔断降级和限流。上节课的话我们已经讲过基于Hystrix组建的来做启动监控面板,并且进行数据流的采集,这里面也给大家讲了一些在实战过程中的一些特殊的坑,比如我们说在2.3.以后,这个版本实际是在默认的安全性方面又做了加强,不能够私自去请求监控的数据源,它要求进行特殊的数设置,你要允许监控面板去链接某个数据源才行,这个参数我们当时也演示了。 

 

  1. Java Spring Cloud熔断限流 
  2. Netflix Hystrix 
  3. Netflix发布了Hystrix熔断器框架,保护系统 
  4. 通过控制那些访问远程系统、服务和第三方库的节点 
  5. 从而对延迟和故障提供更强大的容错能力 
  6. Fallback 灾备操作,出错以后返回的值 
  7. Hystrix, 主要通过线程池来实现资源隔离 
  8. Hystrix的信号模式(Semaphores)来隔离资源 
  9. Hystrix支持dashboard控制面板 监控信息 
  10. Feign可以和Hystrix结合使用,也可以独立使用 
  11. Hystrix使用了命令模式,对命令对象抽象了两个抽象 
  12. 类:HystrixCommand  
  13. HystrixObservableCommand  

接下来咱们来看一下如何去做熔断,熔断是对于高并发系统来保证它的高考用性的时候,来采用了一个很重要的措施。咱们比较常见的一种场景就是淘宝的11,比如我们讲了大家如果做了一个高频化系统的话,如果你的服务器机群理论上比如说支持每秒1万的并发,你现在的话希望在双11的时候,如果流量超过1万,比如达到2万,就是说我不希望系统直接瘫痪。服务器直接全部崩溃,是这种场景的话,我们说这种结果不是我们期望的,咱们找个解决办法,就是我们说的要启用一个保护措施,熔断器模式,这里面的话也叫断路器模式b 

  1. 断路器模式 

image.png 

这个其实在淘宝双11的时候体现的比较明显如果各位有印象的话,参加过之前的双11的话,早期双11时候淘宝的服务器容易卡京东也一样也容易卡。为什么说白了早期的话没有见过电商公司的话是没有经历过这种如此高规模的这种并发流量,包括另外一个12306火车票网站也是一样的,现在的话加上限流,现在的话起码不会让服务瘫痪,相比谈话来说我们起码还能够去处理其中的比如说一部分的请求或者部分我可以继续处理请求。所以这种场景大家在生活中也经常看到,比如说北京的单双号限行,上海的也开始启用限行了,高峰时间限行,包括外地牌以后也不能进内环地面了,这里面其实这都是限流的一个措施。剥离一些基于某些策略,我们说剥离一些请求压力,另外来保护我们的服务器,使服务器能够以较低的一个并发来进行正常的处理请求,早期Netflix也实现了一个关键性的技术叫Hystrix 

  1. Java Spring Cloud熔断限流实战 
  2. Hystrix核心参数 

•请求最大次数 

 circuitBreaker.requestVolumeThreshold(默认值:20个请求) 

•滚动窗口 

 metrics.rollingStats.timeInMilliseconds(默认值:10秒) 

•失败百分比 

 circuitBreaker.errorThresholdPercentage(默认值:> 50%) 

 

我们Hystrix的时候有控制面板,它还可以监控面板还可以进行数据采集,这个数据采集了很重要的一点和熔断降级限流有关系,熔断以后我们说可以降低,比如说之前并发是1000,现在的话可以降到500,之前是1万我可以降到5000,起到一个限流的保护的作用。你可以基于最高并发最大并发率最大并发量达到这个时候是我开始峰值给消掉 

  1. Spring Cloud熔断限流实战 

image.png 

还有就是我们说的是如果某个服务出错出的特别多,我把它给断掉,你把它给断掉,请求不要再发了再发的话出更多的错误。然后比如说是出错率达到10%,还达到100%,你还达到90%的时候我开始熔断。另外的话就是我们服务接口时间过久,它的调用时间长度超过了10秒,达到10秒的时候就不要再去请求他说白了一个问题调动时间太长了,对这个客户端来说没有太大意义因为我们讲了整个的一个服务,如果调研过程的话,一定是哪个地方出了环节,比如数据库思索,或者你的缓存次数都有可能,或者说你的代码出现这个问题,比如说大面积出现,我们说这种注册的请求,可能都有这几个参数很重要。 

实战:添加设置熔断超时的时间 

image.png 

设置处罚超时时间3S 

image.png 

  1. 熔断降级 

 

image.png 

每个公司的服务的并发量都不一样,服务器的配置也不一样,所以限流策略一定要根据业务根据你的架构设计的目标进行灵活调整。主要目的要保护增加它的要可用性,增加了可用性高并发我们说大家都期望,但是这个不可能无限高并发,每个机器的话一定有它的一个我们说叫天花板一定会有它的一个瓶颈,所以我们在一个根据我们实际的配置压测的结果咱们可以配一个保护阀子保护阀子用于保护我们的系统在达到这个瓶颈后保护阀子会进行工作从而实现熔断。 

相关文章
|
3月前
|
算法 Java 微服务
【SpringCloud(1)】初识微服务架构:创建一个简单的微服务;java与Spring与微服务;初入RestTemplate
微服务架构是What?? 微服务架构是一种架构模式,它提出将单一应用程序划分为一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务允许在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是Http协议的RESTful API或RPC协议)。 每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建
541 126
|
3月前
|
负载均衡 算法 Java
【SpringCloud(2)】微服务注册中心:Eureka、Zookeeper;CAP分析;服务注册与服务发现;单机/集群部署Eureka;连接注册中心
1. 什么是服务治理? SpringCloud封装了Netfix开发的Eureka模块来实现服务治理 在传统pc的远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册
325 0
|
3月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
3月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
4月前
|
消息中间件 数据采集 NoSQL
秒级行情推送系统实战:从触发、采集到入库的端到端架构
本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。
526 3
秒级行情推送系统实战:从触发、采集到入库的端到端架构
|
3月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
4月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
608 7
|
4月前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。