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