返回顶部
首页 > 资讯 > 后端开发 > Python >分布式系统中的降级熔断设计问题面试
  • 809
分享到

分布式系统中的降级熔断设计问题面试

2024-04-02 19:04:59 809人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录引言1、面试官:你对你负责的系统做了哪些提高可用性的设计?总结引言 稳定性设计第一篇:在分布式系统下,线上的某一个功能按钮背后会有很多个服务共同完成,这些服务之间有依赖关系,且有

引言

稳定性设计第一篇:在分布式系统下,线上的某一个功能按钮背后会有很多个服务共同完成,这些服务之间有依赖关系,且有一定的顺序调用。那么这些服务如果其中有一个环节出现问题,会带来一些连反应。

比如,突如其来的流量,部分服务突然宕机,你能想到的故障都算故障,是不是整个服务都不可用了吗?作为开发者肯定不希望这样的事情发生,那么有哪些解决问题?思路就是尽量给每个服务找一个“备胎” ,这个“备胎”不是集群概念里一个备用机器 ,而是一种备用方案。

1、面试官:

你对你负责的系统做了哪些提高可用性的设计?

问题分析:稳定性设计三把斧:降级、熔断和限流。即使你没用过,也可以完全根据我描述的场景再结合自己的项目编造一个。

答:这个问题很好理解,举个例子:比如外卖订单服务,假设美团外卖订单系统,系统日常QPS 在 1000 左右(这里我拍脑袋假设,实际远高于1000),可能受天气影响或者是否工作日,QPS 会上下浮动,为1000 - 2000之间。

假设线上系统设计时最多能承受2000 QPS,正常会发生的突发情况单量增多都能承受,突然有那么一天,你的竞争对手饿了么宕机了,用户无法使用都蜂拥而至来美团下单,这个时候QPS 变成了 3000,系统扛不住 3000 的QPS怎么办?用户都卡在提交订单的页面,谁也下不了单。那么如何有效解决这个问题?这个时候就要想到“备胎”方案,尝试以下优化思路。

  1. 流量控制:也就是限流,限流包括单机限流和集群限流,订单系统某一环节加一个开关,好比地铁进站口,人多要排队,保证流量持续进入,而不是撑破服务器大家都无法使用,比如将系统QPS控制在最高2000,后面的 1000 用户告诉他“系统繁忙,请稍后再试”,这样一来无非就是多点几下或者等几分钟,你还能吃上饭。
  2. 降级备案:比如商品列表查询,默认查询的是 Redis 集群,各种故障赶在一起,Redis 所有集群都挂了不能用了,这个时候怎么办,设计一个备胎 elasticsearch,查询速度可能没 Redis 快,但好歹备胎还能用。
  3. 熔断: 这个可以理解成家庭电路中的保险丝,电流有异常后自动开启熔断保护,系统流量也同样原理。

举例: 我对公司内部订单查询系统做的优化,订单查询是运营人员每天都要使用的功能,一定要保证服务可用,还要迅速响应,为了解决这个问题,我使用了ES作为查询主库,如ES故障,系统会自动降级到Mysql查询,完美解决了性能和可用性的问题。

图片描述

(有了上面这个例子,面试官对我在系统可用性方面的设计能力放心多了。)

Tip: 说了这么多不如直接看看图形界面,限流到底是怎么用的,举个例子,我负责的一个接口,限流参数设置是这样的。

图片描述

这是限流功能做成页面可视化系统以后,看看红色框备注和提示如何设置限流,是不是so easy,使用开源的 Hystrix 也能解决此类问题。

总结

这一节的内容不多,最重要的是要知道系统稳定性设计还有三把斧:降级、熔断和限流,内容并不难,重要的是你要有这个意识,你能做到让系统全年不故障持续提供服务,领导把这事儿交给你放心,offer不是你的是谁的?

以上就是分布式系统中的降级熔断设计问题面试的详细内容,更多关于分布式系统中的降级熔断设计的资料请关注编程网其它相关文章!

--结束END--

本文标题: 分布式系统中的降级熔断设计问题面试

本文链接: https://lsjlt.com/news/141918.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 分布式系统中的降级熔断设计问题面试
    目录引言1、面试官:你对你负责的系统做了哪些提高可用性的设计?总结引言 稳定性设计第一篇:在分布式系统下,线上的某一个功能按钮背后会有很多个服务共同完成,这些服务之间有依赖关系,且有...
    99+
    2024-04-02
  • 分布式系统中的 HTTP 通信问题:面试必问问题
    随着分布式系统的普及,HTTP 通信成为了系统之间常用的通信方式之一。然而,在实际应用中,HTTP 通信也会遇到一些问题。本文将从面试必问问题的角度,介绍分布式系统中的 HTTP 通信问题,并提供相应的解决方案。 HTTP 请求的幂等性...
    99+
    2023-06-16
    http 面试 分布式
  • 面试题:如何在 Python 中处理分布式系统的路径问题?
    在分布式系统中,路径问题是一种常见的挑战。由于数据存储和计算分布在多个节点上,路径问题可能会导致性能瓶颈和数据不一致性。在 Python 中,我们可以使用一些技巧来解决这些问题。本篇文章将探讨如何在 Python 中处理分布式系统的路径问题...
    99+
    2023-10-24
    分布式 面试 path
  • java分布式面试降级组件Hystrix的功能特性
    目录引言1、面试官:能简单介绍下Hystrix有哪些功能吗?1.1、fail-fast(快速失败)1.2、Fallback优雅降级机制1.3、线程/信号量隔离机制线程隔离:信号量隔离...
    99+
    2024-04-02
  • 分布式系统中 PHP 在 Windows 上的应用,面试官怎么问?
    分布式系统中 PHP 在 Windows 上的应用,面试官怎么问? 随着互联网的迅速发展,分布式系统的应用越来越广泛,而 PHP 作为一种流行的服务器端语言,在分布式系统中也有着广泛的应用。本文将重点介绍在 Windows 操作系统上,PH...
    99+
    2023-09-29
    windows 分布式 面试
  • 实现和设计Golang的分布式系统
    Golang分布式系统的设计与实现 引言:随着互联网的迅速发展,人们对分布式系统的需求越来越高。分布式系统能够提供高可用性、伸缩性和容错性,使得系统能够应对大量请求和并发。而Golang作为一门现代化的编程语...
    99+
    2024-01-16
    设计 分布式 Golang
  • 分布式系统下调用链追踪技术面试题
    目录引言1、面试官:分布式微服务环境下那么多机器,调用链又很长,你们是如何定位问题的?2、面试官:你知道哪些成熟的调用链开源工具? 总结引言 一个复杂的分布式系统,用户发起...
    99+
    2024-04-02
  • GO语言分布式面试中常见的问题有哪些?
    随着互联网的发展,分布式系统已经成为了现代软件开发中必不可少的一部分。而在分布式系统的开发中,GO语言作为一种高效、可靠、简洁的编程语言,也越来越受到开发者的青睐。在GO语言分布式面试中,常见的问题有哪些呢?下面我们来详细了解一下。 什...
    99+
    2023-06-29
    分布式 面试 教程
  • 面试必问:Python 分布式系统中路径搜索的技巧和要点
    Python 分布式系统中路径搜索的技巧和要点 在分布式系统中,路径搜索是一项非常重要的任务。例如,当我们需要在一个庞大的数据集中查找特定的数据项时,路径搜索算法就能派上用场。在本文中,我们将介绍 Python 分布式系统中的路径搜索技巧和...
    99+
    2023-10-24
    分布式 面试 path
  • Go 语言对于分布式系统的优势:面试答题技巧分享
    分布式系统是现代软件开发中的重要组成部分。在分布式系统中,多个计算机节点协同工作,共同完成一项任务。因此,分布式系统需要具备高性能、高可用性、高可扩展性等特点。而 Go 语言因其并发性能优秀、内存管理自动化等特点,成为了分布式系统开发的首...
    99+
    2023-06-16
    http 面试 分布式
  • Java中设计模式的面试题有哪些
    这篇文章将为大家详细讲解有关Java中设计模式的面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。面试题1:面向对象程序设计(OOP)的六大原则分别有哪几个开闭原则(Open Close Prin...
    99+
    2023-06-20
  • 分布式开发中ASP的应用,如何面对面试中的函数问题?
    在分布式开发中,ASP是一种常见的应用程序框架。它可以帮助开发人员快速地构建Web应用程序,同时提供了大量的函数和工具,方便开发人员进行快速开发和调试。然而,在面试过程中,有时候会涉及到一些ASP的函数问题,这对于一些初学者来说可能会比较...
    99+
    2023-06-14
    分布式 面试 函数
  • 分布式系统中的go响应问题解决方案。
    分布式系统中的go响应问题解决方案 在分布式系统中,响应问题是一项常见的挑战。Go语言作为一门高效且并发的语言,可以帮助我们解决这些问题。本文将介绍一些在分布式系统中使用Go解决响应问题的方案,并通过演示代码来展示这些方案的实现。 一、使用...
    99+
    2023-06-15
    响应 分布式 面试
  • 详解Java分布式系统中session一致性问题
    业务场景 在单机系统中,用户登陆之后,服务端会保存用户的会话信息,只要用户不退出重新登陆,在一段时间内用户可以一直访问该网站,无需重复登陆。用户的信息存在服务端的 session 中...
    99+
    2024-04-02
  • 分布式与服务化的ERP系统架构设计分析
    本篇内容主要讲解“分布式与服务化的ERP系统架构设计分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分布式与服务化的ERP系统架构设计分析”吧!ERP之痛曾几何时,我混迹于电商、珠宝行业4年多...
    99+
    2023-06-02
  • 如何使用Go语言解决分布式系统中的数据分布问题?
    在分布式系统中,数据分布是一个非常重要的问题。随着互联网和云计算的发展,分布式系统变得越来越普遍。在这样的系统中,如何高效地分布和管理数据是一个挑战。本文将介绍如何使用Go语言解决分布式系统中的数据分布问题。 一、数据分布问题 在分布式系统...
    99+
    2023-10-08
    编程算法 数组 分布式
  • Go 语言在分布式系统中的应用:面试考点解析
    随着互联网时代的到来,分布式系统的使用越来越广泛。而在分布式系统的开发中,如何保证系统的高可用、高性能和高并发,成为了每个开发者必须面对的问题。而 Go 语言作为一种强调高并发和高性能的语言,在分布式系统开发中发挥着重要作用。本文将从面试...
    99+
    2023-06-16
    http 面试 分布式
  • 现代分布式存储系统设计中“一致性”的取舍
    CAP定理对现代分布式数据库系统设计的影响比我们预想的要小。相反,一致性和延迟之间取舍 - 对几个主流DDBS产生了更为直接的影响。本文提出的新理论PACELC,将这种权衡与CAP结合起来, 以便对分布式数...
    99+
    2024-04-02
  • Go 语言分布式编程教程:如何解决分布式系统中的常见问题?
    随着互联网的发展,分布式系统在企业级应用中越来越普遍。分布式系统可以提高系统的可靠性、可扩展性和性能。然而,在分布式系统中,有许多常见问题需要解决,例如网络延迟、节点故障、数据一致性等。在本篇文章中,我们将介绍如何使用 Go 语言解决分布...
    99+
    2023-08-26
    分布式 教程 面试
  • web前端中的设计模式面试题有哪些
    这期内容当中小编将会给大家带来有关web前端中的设计模式面试题有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 简述设计模式七大原则开放封闭原则:对扩展开放...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作