什麼是高可用服務?

什麼是高可用?

以年爲單位,一年時間爲 t = 365 * 24 * 60 = 525600 分鐘。

服務可用性一般以實現幾個9目標來評判,不目標下允許的不可用時間如下:

4個9:t * (1 - 99.99%) = 52.56 分鐘。

5個9:t * (1 - 99.999%) = 5.256 分鐘。

對於一般性互聯網服務比較合理的目標設置爲4個9,也就是綜合允許1小時左右不可用時間。

那麼,一個服務做到何種境況,才能實現如此的目標呢?

一、負載均衡

負載均衡是個好東西,它使得我們可以通過特定的策略(輪訓、權重等)來將請求流量分配到支撐的的服務

image

負載均衡是一種策略,它可以存在於任何多對一的集羣中間環節。

LVS:Linux Virtual Server Linux 虛擬服務器,高效廉價負載均衡器,一般作爲外部流量入口。

rpc 服務:服務發現客戶端通過特定的負載均衡策略和服務提供端進行交互。

數據庫服務:應用服務請求多實例數據庫服務(一主多備或雙主多備)。

線程池:均衡線程分配任務。

... ... 等等。

二、集羣策略

什麼是集羣?

只要多於1個就可以稱之爲集羣。

image

反向代理服務集羣、應用服務集羣、數據庫羣、分佈式緩存集羣、消息隊列服務器集羣等等。

集羣策略就像 planA、planB、planC ...,掛了一個實例還有另外一個,是負載均衡策略服務的對象。

不同層面的集羣,參與其中的實例角色地位可能會略有差異,如主備、鏡像等。

對此也會有相應的的伺服監控、角色切換輔助功能支持。

三、災備

雞蛋不要放在一個籃子裏。籃子翻了,所有的雞蛋就都砸了。

image

兩個服務是對一個服務的災備。

兩個機房是對單個機房的災備。

異地是對當地服務的災備。

雙活是對單活的災備。

需要做到什麼程度就要看業務的性質及不同業務的核心程度了。

四、監控,預警、自動化機制

image

監控很重要、非常重要。

服務的狀態需要實時展現及歷史留痕。

你需要有一套健康服務的標準作基線。

服務偏離基線時需要有相應的實時通知及響應機制。

預警,則重在預。

他是基於監控之上的,通過對趨勢的預測來及時發現問題隱患,消滅問題於發生之前。

自動化機制可以是一種補充。

應對流量的限流、熔斷、降級及服務實例的自動伸縮。

響應超時或者異常的服務重試機制。

服務集羣實例角色主備切換。

機房同城、異地切換。

... ... 等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章