最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

分布式系統(tǒng)中的降級(jí)熔斷設(shè)計(jì)問(wèn)題面試

 更新時(shí)間:2022年03月09日 15:55:01   作者:Q.E.D  
這篇文章主要為大家介紹了分布式系統(tǒng)中的降級(jí)熔斷設(shè)計(jì)問(wèn)題面試解答,有需要的朋友可以借鑒參考下,希望能有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

穩(wěn)定性設(shè)計(jì)第一篇:在分布式系統(tǒng)下,線上的某一個(gè)功能按鈕背后會(huì)有很多個(gè)服務(wù)共同完成,這些服務(wù)之間有依賴(lài)關(guān)系,且有一定的順序調(diào)用。那么這些服務(wù)如果其中有一個(gè)環(huán)節(jié)出現(xiàn)問(wèn)題,會(huì)帶來(lái)一些連鎖反應(yīng)。

比如,突如其來(lái)的流量,部分服務(wù)突然宕機(jī),你能想到的故障都算故障,是不是整個(gè)服務(wù)都不可用了嗎?作為開(kāi)發(fā)者肯定不希望這樣的事情發(fā)生,那么有哪些解決問(wèn)題?思路就是盡量給每個(gè)服務(wù)找一個(gè)“備胎” ,這個(gè)“備胎”不是集群概念里一個(gè)備用機(jī)器 ,而是一種備用方案。

1、面試官:

你對(duì)你負(fù)責(zé)的系統(tǒng)做了哪些提高可用性的設(shè)計(jì)?

問(wèn)題分析:穩(wěn)定性設(shè)計(jì)三把斧:降級(jí)、熔斷和限流。即使你沒(méi)用過(guò),也可以完全根據(jù)我描述的場(chǎng)景再結(jié)合自己的項(xiàng)目編造一個(gè)。

答:這個(gè)問(wèn)題很好理解,舉個(gè)例子:比如外賣(mài)訂單服務(wù),假設(shè)美團(tuán)外賣(mài)訂單系統(tǒng),系統(tǒng)日常QPS 在 1000 左右(這里我拍腦袋假設(shè),實(shí)際遠(yuǎn)高于1000),可能受天氣影響或者是否工作日,QPS 會(huì)上下浮動(dòng),為1000 - 2000之間。

假設(shè)線上系統(tǒng)設(shè)計(jì)時(shí)最多能承受2000 QPS,正常會(huì)發(fā)生的突發(fā)情況單量增多都能承受,突然有那么一天,你的競(jìng)爭(zhēng)對(duì)手餓了么宕機(jī)了,用戶無(wú)法使用都蜂擁而至來(lái)美團(tuán)下單,這個(gè)時(shí)候QPS 變成了 3000,系統(tǒng)扛不住 3000 的QPS怎么辦?用戶都卡在提交訂單的頁(yè)面,誰(shuí)也下不了單。那么如何有效解決這個(gè)問(wèn)題?這個(gè)時(shí)候就要想到“備胎”方案,嘗試以下優(yōu)化思路。

  1. 流量控制:也就是限流,限流包括單機(jī)限流和集群限流,訂單系統(tǒng)某一環(huán)節(jié)加一個(gè)開(kāi)關(guān),好比地鐵進(jìn)站口,人多要排隊(duì),保證流量持續(xù)進(jìn)入,而不是撐破服務(wù)器大家都無(wú)法使用,比如將系統(tǒng)QPS控制在最高2000,后面的 1000 用戶告訴他“系統(tǒng)繁忙,請(qǐng)稍后再試”,這樣一來(lái)無(wú)非就是多點(diǎn)幾下或者等幾分鐘,你還能吃上飯。
  2. 降級(jí)備案:比如商品列表查詢,默認(rèn)查詢的是 Redis 集群,各種故障趕在一起,Redis 所有集群都掛了不能用了,這個(gè)時(shí)候怎么辦,設(shè)計(jì)一個(gè)備胎 Elasticsearch,查詢速度可能沒(méi) Redis 快,但好歹備胎還能用。
  3. 熔斷: 這個(gè)可以理解成家庭電路中的保險(xiǎn)絲,電流有異常后自動(dòng)開(kāi)啟熔斷保護(hù),系統(tǒng)流量也同樣原理。

舉例: 我對(duì)公司內(nèi)部訂單查詢系統(tǒng)做的優(yōu)化,訂單查詢是運(yùn)營(yíng)人員每天都要使用的功能,一定要保證服務(wù)可用,還要迅速響應(yīng),為了解決這個(gè)問(wèn)題,我使用了ES作為查詢主庫(kù),如ES故障,系統(tǒng)會(huì)自動(dòng)降級(jí)到MySQL查詢,完美解決了性能和可用性的問(wèn)題。

圖片描述

(有了上面這個(gè)例子,面試官對(duì)我在系統(tǒng)可用性方面的設(shè)計(jì)能力放心多了。)

Tip: 說(shuō)了這么多不如直接看看圖形界面,限流到底是怎么用的,舉個(gè)例子,我負(fù)責(zé)的一個(gè)接口,限流參數(shù)設(shè)置是這樣的。

圖片描述

這是限流功能做成頁(yè)面可視化系統(tǒng)以后,看看紅色框備注和提示如何設(shè)置限流,是不是so easy,使用開(kāi)源的 Hystrix 也能解決此類(lèi)問(wèn)題。

總結(jié)

這一節(jié)的內(nèi)容不多,最重要的是要知道系統(tǒng)穩(wěn)定性設(shè)計(jì)還有三把斧:降級(jí)、熔斷和限流,內(nèi)容并不難,重要的是你要有這個(gè)意識(shí),你能做到讓系統(tǒng)全年不故障持續(xù)提供服務(wù),領(lǐng)導(dǎo)把這事兒交給你放心,offer不是你的是誰(shuí)的?

以上就是分布式系統(tǒng)中的降級(jí)熔斷設(shè)計(jì)問(wèn)題面試的詳細(xì)內(nèi)容,更多關(guān)于分布式系統(tǒng)中的降級(jí)熔斷設(shè)計(jì)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何基于java隨機(jī)獲取不重復(fù)數(shù)值

    如何基于java隨機(jī)獲取不重復(fù)數(shù)值

    這篇文章主要介紹了如何基于java隨機(jī)獲取不重復(fù)數(shù)值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java之字節(jié)碼以及優(yōu)勢(shì)案例講解

    Java之字節(jié)碼以及優(yōu)勢(shì)案例講解

    這篇文章主要介紹了Java之字節(jié)碼以及優(yōu)勢(shì)案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Spring中的注解@Value("#{}")與@Value("${}")的區(qū)別介紹

    Spring中的注解@Value("#{}")與@Value("${}")的區(qū)別

    這篇文章主要介紹了Spring中的注解@Value(“#{}“)與@Value(“${}“)的區(qū)別到底是什么,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Java設(shè)計(jì)模式中的橋接模式

    Java設(shè)計(jì)模式中的橋接模式

    這篇文章主要介紹了Java設(shè)計(jì)模式中的橋接模式,其是一種結(jié)構(gòu)型設(shè)計(jì)模式,是指將實(shí)現(xiàn)與抽象放在兩個(gè)不同的類(lèi)層次中,使兩個(gè)層次可以獨(dú)立改變
    2022-07-07
  • SpringBoot+Redis+Lua防止IP重復(fù)防刷攻擊的方法

    SpringBoot+Redis+Lua防止IP重復(fù)防刷攻擊的方法

    本文主要介紹了SpringBoot+Redis+Lua防止IP重復(fù)防刷攻擊的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • MyBatis加載映射文件和動(dòng)態(tài)代理的實(shí)現(xiàn)

    MyBatis加載映射文件和動(dòng)態(tài)代理的實(shí)現(xiàn)

    本文主要介紹了MyBatis加載映射文件和動(dòng)態(tài)代理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java各種鎖在工作中使用場(chǎng)景和細(xì)節(jié)經(jīng)驗(yàn)總結(jié)

    Java各種鎖在工作中使用場(chǎng)景和細(xì)節(jié)經(jīng)驗(yàn)總結(jié)

    本章主要說(shuō)一說(shuō)鎖在工作中的使用場(chǎng)景,主要以 synchronized 和 CountDownLatch 為例,會(huì)分別描述一下這兩種鎖的使用場(chǎng)景和姿勢(shì)
    2022-03-03
  • Java深入淺出講解String類(lèi)常見(jiàn)方法

    Java深入淺出講解String類(lèi)常見(jiàn)方法

    在C語(yǔ)言中,如果要表示字符串而且對(duì)字符串進(jìn)行操作的話,依靠的是數(shù)組和指針,而Java中提供了String類(lèi)用來(lái)專(zhuān)門(mén)表示字符串,String類(lèi)中常見(jiàn)的方法,以及一些細(xì)節(jié)是本篇重點(diǎn)
    2022-04-04
  • java轉(zhuǎn)換時(shí)區(qū)時(shí)間過(guò)程詳解

    java轉(zhuǎn)換時(shí)區(qū)時(shí)間過(guò)程詳解

    這篇文章主要介紹了java轉(zhuǎn)換時(shí)區(qū)時(shí)間過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 解決IDEA2020 創(chuàng)建maven項(xiàng)目沒(méi)有src/main/java目錄和webapp目錄問(wèn)題

    解決IDEA2020 創(chuàng)建maven項(xiàng)目沒(méi)有src/main/java目錄和webapp目錄問(wèn)題

    這篇文章主要介紹了IDEA2020 創(chuàng)建maven項(xiàng)目沒(méi)有src/main/java目錄和webapp目錄問(wèn)題解決方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

安陆市| 嘉义县| 麟游县| 洪雅县| 辽阳县| 平陆县| 新河县| 曲松县| 葵青区| 灵台县| 沈丘县| 洮南市| 南华县| 绥化市| 白玉县| 永年县| 聊城市| 兴和县| 桐柏县| 福贡县| 饶河县| 重庆市| 营口市| 芜湖县| 得荣县| 东兰县| 西安市| 梁河县| 静海县| 河津市| 九龙城区| 大丰市| 大荔县| 博乐市| 翁牛特旗| 当阳市| 潍坊市| 龙南县| 依安县| 民丰县| 苍山县|