1. 高并發(fā) (High Concurrency)
由于分布式系統(tǒng)的問世,高并發(fā)(High Concurrency)通常是指通過設(shè)計保證系統(tǒng)能夠同時并行處理很多請求潮峦。通俗來講,高并發(fā)是指在同一個時間點隔缀,有很多用戶同時的訪問同一 API 接口或者 Url 地址饱须。它經(jīng)常會發(fā)生在有大活躍用戶量抑诸,用戶高聚集的業(yè)務(wù)場景中薪伏。
2. 高可用 (High Availability)
高可用HA(High Availability)是分布式系統(tǒng)架構(gòu)設(shè)計中必須考慮的因素之一滚澜,它通常是指,一個系統(tǒng)經(jīng)過專門的設(shè)計嫁怀,以減少停工時間设捐,而保持其服務(wù)的高度可用性。
3. 讀寫分離
為了確保數(shù)據(jù)庫產(chǎn)品的穩(wěn)定性塘淑,很多數(shù)據(jù)庫擁有雙機熱備功能萝招。也就是,第一臺數(shù)據(jù)庫服務(wù)器存捺,是對外提供增刪改也就是程序員常說的CUD業(yè)務(wù)的生產(chǎn)服務(wù)器槐沼;第二臺數(shù)據(jù)庫服務(wù)器,主要進行讀的操作捌治。
4. 冷備/熱備
冷備:兩個服務(wù)器岗钩,一臺運行,一臺不運行作為備份具滴。這樣一旦運行的服務(wù)器宕機凹嘲,就把備份的服務(wù)器運行起來。冷備的方案比較容易實現(xiàn)构韵,但冷備的缺點是主機出現(xiàn)故障時備機不會自動接管,需要主動切換服務(wù)趋艘。
熱備:即是通常所說的active/standby方式疲恢,服務(wù)器數(shù)據(jù)包括數(shù)據(jù)庫數(shù)據(jù)同時往兩臺或多臺服務(wù)器寫。當active服務(wù)器出現(xiàn)故障的時候瓷胧,通過軟件診測(一般是通過心跳診斷)將standby機器激活显拳,保證應(yīng)用在短時間內(nèi)完全恢復(fù)正常使用。當一臺服務(wù)器宕機后搓萧,自動切換到另一臺備用機使用杂数。
5. 異地多活
異地多活一般是指在不同城市建立獨立的數(shù)據(jù)中心宛畦,“活”是相對于冷備份而言的,冷備份是備份全量數(shù)據(jù)揍移,平時不支撐業(yè)務(wù)需求次和,只有在主機房出現(xiàn)故障的時候才會切換到備用機房,而多活那伐,是指這些機房在日常的業(yè)務(wù)中也需要走流量踏施,做業(yè)務(wù)支撐。
6. 負載均衡 (Load Balance)
負載均衡罕邀,是對多臺服務(wù)器進行流量分發(fā)的負載均衡服務(wù)畅形。可在多個實例間自動分配應(yīng)用程序的對外服務(wù)能力诉探,通過消除單點故障提升應(yīng)用系統(tǒng)的可用性日熬,讓您實現(xiàn)更高水平的應(yīng)用程序容錯能力,從而無縫提供分配應(yīng)用程序流量所需的負載均衡容量肾胯,為您提供高效碍遍、穩(wěn)定、安全的服務(wù)阳液。
7. 動靜分離
動靜分離是指在web服務(wù)器架構(gòu)中怕敬,將靜態(tài)頁面與動態(tài)頁面或者靜態(tài)內(nèi)容接口和動態(tài)內(nèi)容接口分開不同系統(tǒng)訪問的架構(gòu)設(shè)計方法,進而提升整個服務(wù)訪問性能和可維護性帘皿。
8. 集群
單臺服務(wù)器的并發(fā)承載能力總是有限的东跪,當單臺服務(wù)器處理能力達到性能瓶頸的時,將多臺服務(wù)器組合起來提供服務(wù)鹰溜,這種組合方式稱之為集群虽填,集群中每臺服務(wù)器就叫做這個集群的一個“節(jié)點”,每個節(jié)點都能提供相同的服務(wù)曹动,從而成倍的提升整個系統(tǒng)的并發(fā)處理能力斋日。
9. 分布式
分布式系統(tǒng)就是將一個完整的系統(tǒng)按照業(yè)務(wù)功能拆分成很多獨立的子系統(tǒng),每個子系統(tǒng)就被稱為“服務(wù)”墓陈,分布式系統(tǒng)將請求分揀和分發(fā)到不同的子系統(tǒng)恶守,讓不同的服務(wù)來處理不同的請求。在分布式系統(tǒng)中贡必,子系統(tǒng)獨立運行兔港,它們之間通過網(wǎng)絡(luò)通信連接起來實現(xiàn)數(shù)據(jù)互通和組合服務(wù)。
10. CAP理論
CAP理論仔拟,指的是在一個分布式系統(tǒng)中衫樊,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分區(qū)容錯性)科侈,不能同時成立载佳。
一致性:它要求在同一時刻點,分布式系統(tǒng)中的所有數(shù)據(jù)備份都相同或者都處于同一狀態(tài)臀栈。
可用性:在系統(tǒng)集群的一部分節(jié)點宕機后蔫慧,系統(tǒng)依然能夠正確的響應(yīng)用戶的請求。
分區(qū)容錯性:系統(tǒng)能夠容忍節(jié)點之間的網(wǎng)絡(luò)通信的故障挂脑。
簡單的來說藕漱,在一個分布式系統(tǒng)中,最多能支持上面的兩種屬性崭闲。但顯然既然是分布式注定我們是必然要進行分區(qū)肋联,既然分區(qū),我們就無法百分百避免分區(qū)的錯誤刁俭。因此橄仍,我們只能在一致性和可用性上去作出選擇。
在分布式系統(tǒng)中牍戚,我們往往追求的是可用性侮繁,它的重要性比一致性要高,那么如何實現(xiàn)高可用如孝,這里又有一個理論宪哩,就是 BASE 理論,它給 CAP 理論做了進一步的擴充第晰。
11. BASE理論
BASE 理論指出:
Basically Available(基本可用)
Soft state(軟狀態(tài))
Eventually consistent(最終一致性)
BASE 理論是對 CAP 中的一致性和可用性進行一個權(quán)衡的結(jié)果锁孟,理論的核心思想就是:我們無法做到強一致,但每個應(yīng)用都可以根據(jù)自身的業(yè)務(wù)特點茁瘦,采用適當?shù)姆绞絹硎瓜到y(tǒng)達到最終一致性品抽。
12. 水平擴展/垂直擴展
水平擴展 Scale Out通過增加更多的服務(wù)器或者程序?qū)嵗齺矸稚⒇撦d,從而提升存儲能力和計算能力甜熔。
垂直擴展 Scale Up 提升單機處理能力圆恤。
垂直擴展的方式又有兩種:
(1)增強單機硬件性能,例如:增加CPU核數(shù)如32核腔稀,升級更好的網(wǎng)卡如萬兆盆昙,升級更好的硬盤如SSD,擴充硬盤容量如2T烧颖,擴充系統(tǒng)內(nèi)存如128G;
(2)提升單機軟件或者架構(gòu)性能弱左,例如:使用Cache來減少IO次數(shù),使用異步來增加單服務(wù)吞吐量炕淮,使用無鎖數(shù)據(jù)結(jié)構(gòu)來減少響應(yīng)時間;
13. 平行擴容
與水平擴展類似跳夭。集群服務(wù)器中的節(jié)點均為平行對等節(jié)點涂圆,當需要擴容時们镜,可以通過添加更多節(jié)點以提高集群的服務(wù)能力。一般來說服務(wù)器中的關(guān)鍵路徑(如服務(wù)器中的登錄润歉、支付模狭、核心業(yè)務(wù)邏輯等)都需要支持運行時動態(tài)平行擴容。
14. 彈性擴容
指對部署的集群進行動態(tài)在線擴容踩衩。彈性擴容系統(tǒng)可以根據(jù)實際業(yè)務(wù)環(huán)境按照一定策略自動地添加更多的節(jié)點(包括存儲節(jié)點嚼鹉、計算節(jié)點、網(wǎng)絡(luò)節(jié)點)來增加系統(tǒng)容量驱富、提高系統(tǒng)性能或者增強系統(tǒng)可靠性锚赤,或者同時完成這三個目標。
15. 狀態(tài)同步/幀同步
狀態(tài)同步:狀態(tài)同步是指服務(wù)器負責計算全部的游戲邏輯褐鸥,并且廣播這些計算的結(jié)果线脚,客戶端僅僅負責發(fā)送玩家的操作,以及表現(xiàn)收到的游戲結(jié)果叫榕。
特征:狀態(tài)同步安全性高浑侥,邏輯更新方便,斷線重連快晰绎,但是開發(fā)效率較低寓落,網(wǎng)絡(luò)流量隨游戲復(fù)雜度增加,服務(wù)器需要承載更大壓力荞下。
幀同步:服務(wù)端只轉(zhuǎn)發(fā)消息伶选,不做任何邏輯處理,各客戶端每秒幀數(shù)一致锄弱,在每一幀都處理同樣的輸入數(shù)據(jù)考蕾。
特征:幀同步需要保證系統(tǒng)在相同的輸入下,要有相同的輸出会宪。幀同步開發(fā)效率高肖卧,流量消耗低而且穩(wěn)定,對服務(wù)器的壓力非常小掸鹅。但是網(wǎng)絡(luò)要求高塞帐,斷線重連時間長,客戶端計算壓力大巍沙。