談?wù)劵ヂ?lián)網(wǎng)的一些高可用設(shè)計手段

1.什么是高可用

任何人在任何時間任何地點訪問我們的任何服務(wù)都可以得到響應(yīng)結(jié)果。

為什么需要高可用

評估方式

傳統(tǒng)方式:

image

科學(xué)方式

一段時間內(nèi)的停機影響請求量占比

停機時間的響應(yīng)請求量/總的請求量

影響高可用

1.突發(fā)大流量

2.秒殺設(shè)計

3.硬件方面
等等

微服務(wù)高可用設(shè)計手段

1.服務(wù)冗余

為了防止一臺機器因為軟件或硬件問題導(dǎo)致不可用,需要部署多個服務(wù)器,單機房保證服務(wù)部署在不同的機架或機柜上,防止一臺機架或機柜停電導(dǎo)致不可用。多臺機器就會使服務(wù)冗余。

服務(wù)冗余的結(jié)果就是要做無狀態(tài)化。所謂的無狀態(tài)化就是要使冗余部署的服務(wù)是對等的,比如部署兩臺,請求進來通過網(wǎng)關(guān)不管傳入哪一臺服務(wù)器,都是不影響的。

2.負載均衡

在網(wǎng)關(guān)接收到請求時,需要轉(zhuǎn)發(fā),一般應(yīng)用服務(wù)器有多臺,如何合理的進行請求轉(zhuǎn)發(fā)到不同的服務(wù)器使用的策略就是負載均衡策略,使用負載均衡可以使請求合理的分配到不同的服務(wù)器上進行處理。

做負載均衡的同時,也需要考慮做冪等設(shè)計,避免多次接受請求。

3.超時機制

如果請求等待時間過長,獲取不到請求結(jié)果,需要設(shè)計一個超時等待的機制。

異步化設(shè)計: 做架構(gòu)的異步化是提高吞吐量。

使用好處: 在不關(guān)心的數(shù)據(jù)和結(jié)果可以使用異步化來做。核心的流量采樣同步來做,非核心的采用異步化來做。

4.服務(wù)限流熔斷降級

降低服務(wù)的請求量,不同服務(wù)之間調(diào)用異常,會導(dǎo)致等待時間過久,需要做服務(wù)熔斷。在某些場景下,某些服務(wù)訪問量會突然飆升,為了降低服務(wù)器壓力,會把某些冷門服務(wù)進行降級關(guān)閉,把資源分配到比較常用的服務(wù)上。

5. 數(shù)據(jù)復(fù)制/緩存/sharding

數(shù)據(jù)復(fù)制可以保證數(shù)據(jù)的同步性,使用緩存可以是數(shù)據(jù)訪問效率較快提高吞吐量

6. 架構(gòu)拆分/服務(wù)治理

架構(gòu)拆分可以降低應(yīng)用的復(fù)雜度,進行服務(wù)治理也是。同時架構(gòu)拆分還可以降低服務(wù)的壓力

做服務(wù)實時監(jiān)控

更快的預(yù)先判斷哪些服務(wù)可能會發(fā)生某些問題,在不可用之前進行監(jiān)控改進。

如何避免或者降低服務(wù)出現(xiàn)故障。

進行服務(wù)分級

image
image
image
image

高可用案例

  1. 如何無縫停止線上服務(wù)

網(wǎng)關(guān)層具備熱切換能力

可以熱開關(guān)切換: 假設(shè)設(shè)計晚上八點后,不接受服務(wù)需要進行升級,可以通過判斷每個業(yè)務(wù)層是否有打印日志判斷是否還在處理舊的服務(wù),如果沒有,則可以關(guān)閉網(wǎng)關(guān)層進行熱切換服務(wù)。也可以通過前端部分,設(shè)置超時時間,在八點05秒,進行熱開關(guān)切換。

網(wǎng)關(guān)層不具備熱切換能力

防火墻限制只出不進 ,IPTABLES

熱開關(guān):

可以設(shè)置一個全局配置變量,在網(wǎng)關(guān)層判斷是否為1,平時為0. 為1時,表示開啟熱開關(guān),不接收請求。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容