当前位置:首页 > 科技  > 软件

解密微服务雪崩:保护您的应用免受灾难性故障的威胁

来源: 责编: 时间:2023-10-06 19:19:56 443观看
导读今日目标了解雪崩产生的原因理解常见解决方案随着微服务架构的广泛应用,应用程序的复杂性已经得到了显著提高,但与之同时,微服务雪崩问题也开始引起广泛关注。微服务雪崩是指在微服务架构中,一个或多个微服务出现故障或不

今日目标

  • 了解雪崩产生的原因
  • 理解常见解决方案

随着微服务架构的广泛应用,应用程序的复杂性已经得到了显著提高,但与之同时,微服务雪崩问题也开始引起广泛关注。微服务雪崩是指在微服务架构中,一个或多个微服务出现故障或不可用时,导致整个系统的不稳定甚至崩溃。本文将介绍微服务雪崩的产生原因以及一些常见的解决方案。qv828资讯网——每日最新资讯28at.com

1. 雪崩介绍

微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。qv828资讯网——每日最新资讯28at.com

图片图片qv828资讯网——每日最新资讯28at.com

如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞。此时,其它不依赖于服务I的业务似乎不受影响。qv828资讯网——每日最新资讯28at.com

图片图片qv828资讯网——每日最新资讯28at.com

但是,依赖服务I的业务请求被阻塞,用户不会得到响应,服务器的这个线程不会释放,于是越来越多的用户请求到来,越来越多的线程会阻塞:qv828资讯网——每日最新资讯28at.com

图片图片qv828资讯网——每日最新资讯28at.com

服务器支持的线程和并发数有限,请求一直阻塞,会导致服务器资源耗尽,从而导致所有其它服务都不可用,那么当前服务也就不可用了。qv828资讯网——每日最新资讯28at.com

那么,依赖于当前服务的其它服务随着时间的推移,最终也都会变的不可用,形成级联失败,雪崩就发生了:qv828资讯网——每日最新资讯28at.com

图片图片qv828资讯网——每日最新资讯28at.com

总结雪崩产生原因

  • 依赖关系复杂性: 在微服务架构中,各个服务之间存在复杂的依赖关系。如果一个服务出现故障,它可能会导致依赖于它的其他服务也无法正常工作。
  • 大规模部署: 大规模部署意味着有大量的服务实例在运行,当其中一部分实例出现问题时,整个系统可能受到影响。
  • 同时故障: 有时,多个服务可能因相同的原因(如硬件故障、网络问题或配置错误)而同时故障,导致雪崩效应。
  • 超时和重试: 如果某个服务在请求时长时间未响应,其他服务可能会发起重试请求,导致更多的负载,最终导致系统崩溃。
  • 资源耗尽: 当某个服务的资源(如数据库连接、线程池)被过度消耗时,它可能会无法响应请求,从而引发雪崩。

2. 雪崩解决方案

雪崩解决常见解决方案有以下几种:qv828资讯网——每日最新资讯28at.com

  • 超时处理:对于每个微服务的请求,应该设置合理的超时时间。超时时间应该充分考虑服务的响应时间和业务需求,以避免等待时间过长导致的问题
  • 舱壁模式(Bulkhead Pattern for Avalanche):系统遇到雪崩风险时,通过隔离不同服务或组件,以防止一个故障或高负载情况影响整个系统的稳定性。是一种应对潜在雪崩的设计模式
  • 限流(Rate Limiting): 限流可以控制对服务的请求速率,确保不会超出服务的处理能力。这可以防止流量过多而导致系统崩溃
  • 熔断器模式(Circuit Breaker Pattern):熔断器模式是一种容错模式,用于避免雪崩效应。熔断器会监控服务的健康状态,当服务连续出现故障或响应时间超过阈值时,熔断器会打开,阻止进一步的请求流量流向该服务,从而保护系统的稳定性
  • 降级策略(Fallback): 降级是一种处理服务不可用或性能下降的策略,它允许系统在出现问题时提供有限但稳定的功能,而不是完全失败。当服务出现问题时,降级策略可以返回默认值、缓存数据、执行备用操作或者提供一个基本的响应,以确保用户仍然能够访问系统的一部分功能

2.1. 超时处理

针对服务调用增加超时机制(一般dubbo默认30s),一旦超时自动释放资源,因释放资源较快一定程度可抑制资源耗尽问题。但如果在超时释放的时间内陡增大量请求,依然会导致服务宕机不可用。qv828资讯网——每日最新资讯28at.com

图片图片qv828资讯网——每日最新资讯28at.com

2.3. 熔断器模式(Circuit Breaker Pattern)

熔断器模式:由熔断器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。qv828资讯网——每日最新资讯28at.com

熔断器会统计访问某个服务的请求数量,异常比例qv828资讯网——每日最新资讯28at.com

图片图片qv828资讯网——每日最新资讯28at.com

当发现访问服务D的请求异常比例过高时,认为服务D有导致雪崩的风险,会拦截访问服务D的一切请求,形成熔断:qv828资讯网——每日最新资讯28at.com

图片图片qv828资讯网——每日最新资讯28at.com

2.4. 限流

限流:限制业务访问的QPS,避免服务因流量的突增而故障。qv828资讯网——每日最新资讯28at.com

图片图片qv828资讯网——每日最新资讯28at.com

3.总结

雪崩问题:qv828资讯网——每日最新资讯28at.com

  • 微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。

解决方案:qv828资讯网——每日最新资讯28at.com

限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。qv828资讯网——每日最新资讯28at.com

超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。qv828资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-12139-0.html解密微服务雪崩:保护您的应用免受灾难性故障的威胁

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 十个事半功倍的IntelliJ Idea插件和主题

下一篇: WPF中静态资源和动态资源区别?

标签:
  • 热门焦点
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • 如何通过Python线程池实现异步编程?

    线程池的概念和基本原理线程池是一种并发处理机制,它可以在程序启动时创建一组线程,并将它们置于等待任务的状态。当任务到达时,线程池中的某个线程会被唤醒并执行任务,执行完任
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • Python异步IO编程的进程/线程通信实现

    这篇文章再讲3种方式,同时讲4中进程间通信的方式一、 Python 中线程间通信的实现方式共享变量共享变量是多个线程可以共同访问的变量。在Python中,可以使用threading模块中的L
  • 苹果、三星、惠普等暂停向印度出口笔记本和平板电脑

    集微网消息,据彭博社报道,在8月3日印度突然禁止在没有许可证的情况下向印度进口电脑/平板及显示器等产品后,苹果、三星电子和惠普等大公司暂停向印度
  • iQOO Neo8 Pro真机谍照曝光:天玑9200+和V1+旗舰双芯加持

    去年10月,iQOO推出了iQOO Neo7系列机型,不仅搭载了天玑9000+,而且是同价位唯一一款天玑9000+直屏旗舰,一经上市便受到了用户的广泛关注。在时隔半年后,
  • 苹果140W USB-C充电器:采用氮化镓技术

    据10 月 30 日 9to5 Mac 消息报道,当苹果推出新的 MacBook Pro 2021 时,该公司还推出了新的 140W USB-C 充电器,附赠在 MacBook Pro 16 英寸机型的盒子里,也支
Top