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