一、分布式系統架構設計三大原則
分布式系統是硬件或軟件組件分布在不同的網絡計算機上,彼此之間僅僅通過消息傳遞進行通信和協調的系統,對分布式系統的(de)架構(gou)進行設計時,要注意三(san)大原則:
1、高可用設計
高可用HA(High Availability)是(shi)分布(bu)式系(xi)統架構(gou)設計中必須(xu)考慮的(de)(de)因(yin)素之一,它通常是(shi)指,通過設計減少系(xi)統不能提供服(fu)務(wu)的(de)(de)時間。通常會(hui)通過設計冗余 自動故(gu)障轉(zhuan)移來保證系(xi)統的(de)(de)高可用特性。
2、高并發設計
(1)有狀態(tai)設(she)計:是指進(jin)程在(zai)本地(di)內(nei)存或磁盤(pan)上(shang)存儲自己完成(cheng)代碼邏輯需要(yao)的(de)數據,并且進(jin)程啟動(dong)時需要(yao)將數據加載到內(nei)存或要(yao)求數據文件在(zai)本地(di)磁盤(pan)上(shang)存在(zai)才能正常運行的(de)服(fu)務。
(2)無狀態設計:對單次(ci)請(qing)(qing)求(qiu)的(de)(de)處(chu)理,不依賴其他請(qing)(qing)求(qiu),也就是說(shuo),處(chu)理一次(ci)請(qing)(qing)求(qiu)所需(xu)的(de)(de)全部信息(xi),要么(me)都包含在這個請(qing)(qing)求(qiu)里,要么(me)可(ke)以(yi)從(cong)外部獲取(qu)到(比如(ru)說(shuo)數據庫),服(fu)務器本身(shen)不存(cun)儲(chu)任(ren)何信息(xi)。無狀態設計的(de)(de)設計如(ru)果涉(she)及到要存(cun)儲(chu)信息(xi),有兩種方(fang)式可(ke)以(yi)選擇:客戶(hu)端保存(cun)、服(fu)務端保存(cun)。
3、高性能設計
以用戶(hu)為(wei)中心,提供快速的網頁訪問體(ti)驗(yan)。主要參(can)(can)數(shu)有(you)較短的響應(ying)時間、較大的并發處理(li)能(neng)力、較高的吞吐(tu)量與穩定的性(xing)能(neng)參(can)(can)數(shu)。
二、分布式系統架構設計有哪些優化策略
分布式系統架(jia)構設計過程中,可(ke)以采用一些(xie)策略(lve)對(dui)其(qi)進行優(you)化(hua),常(chang)見的優(you)化(hua)策略(lve)有(you):
1、數據分片
將數據按照(zhao)特定(ding)的(de)規則進行分(fen)片存(cun)儲,可(ke)以實(shi)現數據的(de)橫向擴(kuo)展(zhan)(zhan),提高系統的(de)性(xing)能和可(ke)擴(kuo)展(zhan)(zhan)性(xing)。數據分(fen)片可(ke)以基于哈希、范圍、一致性(xing)哈希等算(suan)法進行實(shi)現。
2、負載均衡
通(tong)過負載均(jun)衡策(ce)略,合理地(di)分配和(he)(he)調(diao)度系統的請求,可(ke)(ke)以(yi)避免(mian)單個(ge)節(jie)點(dian)負載過重的問題,提高系統的性能和(he)(he)可(ke)(ke)靠(kao)性。負載均(jun)衡可(ke)(ke)以(yi)采用輪詢、隨機(ji)、最少連(lian)接等(deng)算(suan)法(fa)進行實現。
3、緩存機制
通(tong)過(guo)緩存(cun)(cun)機制,可以(yi)將系(xi)統經常訪問(wen)的(de)(de)數據緩存(cun)(cun)到內存(cun)(cun)中,減少對數據庫的(de)(de)訪問(wen),從而(er)提(ti)高系(xi)統的(de)(de)性能和(he)吞(tun)吐量(liang)。緩存(cun)(cun)機制可以(yi)采用本地緩存(cun)(cun)、分(fen)布式緩存(cun)(cun)等方式進行實現(xian)。
4、異步處理
通過異步處理機制(zhi),可以將某些復雜的操作異步化,解放(fang)主線程,提高系統的并發性能和響應速度。異步處理可以采用消息(xi)隊列、事(shi)件驅動等(deng)方(fang)式進(jin)行實(shi)現。
5、分布式事務
通過(guo)分布(bu)式事(shi)務機(ji)制,可(ke)以(yi)保證多個節點之間的數(shu)據(ju)一致性和(he)可(ke)靠性,從而提高系統(tong)的穩定性和(he)可(ke)用(yong)性。分布(bu)式事(shi)務可(ke)以(yi)采用(yong)兩階段提交(2PC)、補償(chang)事(shi)務等(deng)方式進行實現。
6、容錯處理
通過容錯處(chu)理機(ji)制,可(ke)以(yi)保證(zheng)系統(tong)在(zai)發生(sheng)故障時能夠自動(dong)恢復和(he)(he)重啟,從而提(ti)高(gao)系統(tong)的可(ke)用性(xing)和(he)(he)穩定性(xing)。容錯處(chu)理可(ke)以(yi)采用備(bei)份、容器化(hua)、快(kuai)速故障轉移等方式(shi)進行實現。