首页 > 其他分享 >Spring Cloud Alibaba-服务雪崩效应

Spring Cloud Alibaba-服务雪崩效应

时间:2023-08-14 11:22:04浏览次数:47  
标签:服务 Hystrix Spring Alibaba 熔断 线程 雪崩 Cloud

一、高并发带来的问题
在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务堆积,最终导致服务瘫痪。

二、服务雪崩效应
在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了问题,调用这个服务就会出现线程阻塞的情况,此时若有大量的请求涌入,就会出现多条线程阻塞等待,进而导致服务瘫痪。

    由于服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的 “雪崩效应” 。

雪崩发生的原因多种多样,有不合理的容量设计,或者是高并发下某一个方法响应变慢,亦或是某台机器的资源耗尽。我们无法完全杜绝雪崩源头的发生,只有做好足够的容错,保证在一个服务发生问题,不会影响到其它服务的正常运行。也就是"雪落而不雪崩"。

三、如何解决雪崩?
解决雪崩问题的常见方式有四种:

1.超时处理:
设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待

2.舱壁模式:
限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。

  1. 熔断降级:
    由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。

4.流量控制:
限制业务访问的QPS,避免服务因流量的突增而故障。

四、服务保护技术对比
Hystrix

Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。

Resilience4J

Resilicence4J一款非常轻量、简单,并且文档非常清晰、丰富的熔断工具,这也是Hystrix官方推荐的替代产品。不仅如此,Resilicence4j还原生支持Spring Boot 1.x/2.x,而且监控也支持和 prometheus等多款主流产品进行整合。

Sentinel

Sentinel 是阿里巴巴开源的一款断路器实现,本身在阿里内部已经被大规模采用,非常稳定。


标签:服务,Hystrix,Spring,Alibaba,熔断,线程,雪崩,Cloud
From: https://www.cnblogs.com/codeLearn/p/17628146.html

相关文章

  • 使用Spring initializr快速创建一个springboot项目
     第一步首先new一个新的project选择Springinitializr配置好相关信息后下一步编辑在左上角我们可以选择SprinBoot的版本,在这里直接加入web依赖springweb和Template的Thymeleaf依赖,点上对勾后可以在最右边里看到你选择的依赖,然后点击create编辑可以看到我们的项目结构,很多sprin......
  • 深入解析 Spring Boot 自动配置机制
    SpringBoot作为一款广泛应用的微服务框架,以其强大的自动配置功能而闻名。这一特性能够让开发人员快速搭建和部署应用程序,无需手动繁琐的配置。在本篇博客中,我们将深入探究SpringBoot自动配置的机制,剖析其背后的原理,并通过代码示例演示如何定制自动配置。1.自动配置的核心原理......
  • 深入探究 Spring Boot 自动配置的内部机制
    SpringBoot作为一款广泛应用的微服务框架,以其强大的自动配置功能而受到瞩目。这一特性能够让开发人员快速搭建和部署应用程序,无需手动繁琐的配置。在本篇博客中,我们将深入探讨SpringBoot自动配置的内部机制,揭示其背后的原理,并通过代码示例演示如何进行自定义的自动配置。1.自......
  • Spring Boot 自动配置原理深度解析
    SpringBoot作为一款广泛应用的微服务框架,以其强大的自动配置功能而著名。这一特性能够让开发人员快速搭建和部署应用程序,无需手动繁琐的配置。在本篇博客中,我们将深入探究SpringBoot自动配置的原理,揭示其背后的工作机制,并通过代码示例演示如何进行自定义的自动配置。1.自动配......
  • 揭秘 Spring Boot 自动配置的内部机制
    SpringBoot作为一款广泛使用的微服务框架,以其强大的自动配置功能而受到瞩目。这一特性能够让开发人员快速搭建和部署应用程序,无需手动繁琐的配置。在本篇博客中,我们将深入探究SpringBoot自动配置的内部机制,剖析其背后的原理,并通过代码示例演示如何进行自定义的自动配置。1.自......
  • 深入解析 Kafka 消息传递机制及其在 Spring Boot 中的应用
    Kafka作为一款高性能的分布式消息中间件,被广泛用于构建实时数据流处理和事件驱动的架构。在本篇博客中,我们将深入探讨Kafka的消息传递机制,并结合SpringBoot框架,演示如何在应用中使用Kafka进行消息传递。1.Kafka消息传递机制Kafka使用发布-订阅模型来实现消息传递。核心......
  • Kafka 消息传递机制与 Spring Boot 集成实践
    Kafka作为一款强大的分布式消息中间件,被广泛应用于实时数据流处理和事件驱动的架构。在本篇博客中,我们将深入探讨Kafka的消息传递机制,并结合SpringBoot框架,演示如何在应用中集成和使用Kafka进行消息传递。1.Kafka消息传递机制概述Kafka使用发布-订阅模型来实现高效的消......
  • Kafka 消息传递原理及在 Spring Boot 中的应用实践
    Kafka作为一款强大的分布式消息中间件,在实时数据流处理和事件驱动架构中扮演着重要角色。在本篇博客中,我们将深入探讨Kafka的消息传递原理,并结合SpringBoot框架,演示如何在应用中使用Kafka进行消息传递。1.Kafka消息传递原理Kafka采用发布-订阅模型实现消息传递,核心概念......
  • Spring Boot + Vue3前后端分离实战wiki知识库系统<十二>--用户管理&单点登录开发一
    目标:在上一次https://www.cnblogs.com/webor2006/p/17533745.html我们已经完成了文档管理的功能模块开发,接下来则开启新模块的学习---用户登录,这块还是有不少知识点值得学习的,先来看一下整体的效果,关于效果官网有一个体验地址:wiki.courseimooc.com,如下:其效果也是人人熟知的,下面......
  • Kafka 消息传递机制深度解析与 Spring Boot 集成实践
    Kafka作为一款强大的分布式消息中间件,在实时数据流处理和事件驱动架构中扮演着关键角色。在本篇博客中,我们将深入探讨Kafka的消息传递机制,并结合SpringBoot框架,演示如何在应用中集成和使用Kafka进行消息传递。1.Kafka消息传递机制剖析Kafka采用发布-订阅模型实现高效的......