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