分布式系统架构
1.分布式:通過網絡連接的多個組件,通過交換信息協作而形成的系統。
分布式不一定就是不同的組件,同一個組件也可以,關鍵在于是否通過交換信息的方式進行協作。
不同的業務模塊部署在不同的服務器上或者同一個業務模塊分拆多個子業務,部署在不同的服務器上,解決高并發的問題。
2.分布式系統架構:運行在多個處理器上的軟件架構設計。
3.分布式系統:建立在網絡之上支持分布式處理的軟件系統,由通信網絡互聯的多處理機體系結構上執行任務的系統。具有高度的內聚性和透明性。
內聚性:每一個數據庫分布節點高度自治,有本地的數據庫管理系統。
4.軟件架構:是有關軟件整體結構與組件的抽象描述,用于指導大型軟件系統各個方面的設計。
5.ADL(架構描述語言):
①一種形式化語言,用于描述軟件的體系架構。為軟件系統的概念體系結構建模提供了具體語法和概念框架。
②基于底層語義的工具為體系結構的表示、分析、進化、細化、設計過程等提供支持。
6.集群:同一種組件的多個實例,形成的邏輯上的整體。(也就是同一個業務部署在多臺機器上,提高系統可用性)
集群的三種類型:
Ⅰ.高可用集群,如RHCS、LifeKeeper等。
Ⅱ.負載均衡集群,如LVS等。
Ⅲ.高性能運算集群。
分布式與集群的區別:
Ⅰ. 集群是個物理形態,分布式是個工作方式。
集群一般是物理集中、統一管理的,而分布式系統則不強調這一點。
Ⅱ.當我們講一個集群,著重描述這個處理機的靜態狀態,強調個體和群體之間的聯系。當我們講分布式系統,著重講這個處理機的動態狀態,強調請求和處理直接的分發狀況。
Ⅲ.分布式是指一個業務分拆多個子業務,部署在不同的服務器上。而集群是指同一個業務,部署在多個服務器上。
7.副本機制:
①副本:在分布式系統中,為數據或服務提供的冗余。
②數據副本:在不同的節點上持久化同一份數據。當出現某個節點上的數據丟失時,可以從副本上讀取數據。
③服務副本:多個節點提供相同的服務,通過主從關系來服務的高可用方案。
8.分布式架構的基本理論 CAP:
①一致性(Consistency):所有節點上的數據時刻保持同步。
②可用性(Availability):每個請求都能接收到一個響應,無論響應成功或失敗。
③分區容忍性(Partition tolerance):系統應該持續提供服務,即使系統內部(某個節點分區)有消息丟失。
④CAP原理指的是這三個要素最多只能同時實現兩點,不能三者兼顧。
Ⅰ.在設計分布式系統架構時,必須做出取舍。
Ⅱ.對于分布式系統 分區容忍性 是最基本要求,否則就失去了價值。
Ⅲ.設計分布式系統就是在一致性 和可用性中去一個平衡,對于大多數web應用,其實并不需要強一致性。因此犧牲一致性而換取高可用性,是目前多數分布式系統設計的方向。
⑤CAP理論僅僅適用于原子讀寫的NoSql場景中,并不適用于數據庫系統事務。
原因:當更新一些錯誤的數據而導致失敗時,無論使用什么樣的高可用方案都是徒勞,此時數據發生了無法修正的錯誤。
9.BASE:
①Basically Available(基本可用):在分布式系統出現不可預知的故障時,允許瞬時部分可用性。
假設系統,出現了不可預知的故障,但還是能用。只是,相比較正常的系統而言,存在響應時間上的損失、功能上的損失。
②Soft State(軟狀態):表示系統中的數據存在中間狀態,并且這個中間狀態的存在不會影響系統的整體可用性。也就是表示系統允許在不同節點的數據副本之間進行數據同步的這個過程中存在延時。
③Eventually Consistent(最終一致性):所有的數據副本,在經過一段時間的同步之后,最終都能夠達到一個一致的狀態。
其本質是需要系統保證最終數據能夠達到一致,而不需要實時保證系統數據的強一致性。
④BASE 理論的核心思想是:
即使無法做到強一致性,但每個應用都可以根據自身業務特點,采用適當的方式來使系統達到最終一致性。
⑤BASE理論面向的是大型高可用可擴展的分布式系統。提高 高可用 犧牲強一致性。
10.分布式系統架構的優勢:
①增大了系統容量。
②加強了系統可用性
③使得系統模塊重用度更高。
因為模塊化。
④開發和發布速度可以并發而變得更快。
因為軟件模塊化被拆分。
⑤系統擴展性更高。
11.分布式系統架構的劣勢:
①架構設計變得復雜,尤其是其中的分布式事務。
②部署單個服務會比較快,但如果一次部署多個服務,流程會變得復雜
③系統的吞吐量會變大,響應時間會變長。
④運維復雜度會因為服務變多而變得復雜。
⑤測試和查錯的復雜度增大。
⑥技術多元化,這會帶來維護和運維的復雜度。
⑦管理分布式系統中的服務和調度變得困難和復雜。
12.分布式系統的應用:
①并行和高性能應用。
②容錯應用。
③固有的分布式應用。
13.分布式部署適應的情況:
①公司有不同分支機構或較小的分散點與公司網絡的連接通常是底寬帶、高滯后或不可靠的。
②公司總部網絡無法處理中心位置的服務流量。
③分支機構有自己的服務器、企業網絡、域控制器和系統管理員,包含數目不定的用戶。
④用戶要求有更快的郵箱訪問速度、更佳的用戶體驗和可用性。
⑤用戶數量大,并發線程多。
⑥對于安全要求高,需要把服務器不同的功能分開部署。
14.使用分布式系統的主要目的:
①大流量處理:通過集群技術把大規模并發請求的負載分散到不同的機器上。
②關鍵業務保護:提高后來服務的可用性,把故障隔離起來阻止多米諾骨牌效應(雪崩效應)。如果流量過大需要,需要對業務降級,以保護關鍵業務流轉。
15.提高系統架構的性能的方法:
①加緩沖:緩存系統(緩存分區,緩存更新,緩存命中)。
緩存(cache)是用來加速數據從硬盤中"讀取"的,而緩沖(buffer)是用來加速數據"寫入"硬盤的。
②負載均衡:網關系統(負載均衡,服務路由,服務發現)。
負載均衡是高可用網絡基礎架構的關鍵組件,通常用于將工作負載分布到多個服務器來提高網站、應用、數據庫或其他服務的性能和可靠性。
③異步調用:異步系統(消息隊列,消息持久,異步事務)。
異步調用:程序在執行時,無需等待執行的返回值可繼續執行后面的代碼。
④數據鏡像:數據鏡像(數據同步,讀寫分離,數據一致性)。
鏡像是用于創建服務器或磁盤的模板。鏡像服務提供鏡像生命周期管理能力。可以通過服務器或外部文件創建系統盤鏡像或數據盤鏡像,也可以使用彈性云服務器或云服務器備份創建帶數據盤的整機鏡像。
⑤數據分區:數據分區(分區策略,數據訪問層,數據一致性)。
Ⅰ.分區:將數據庫或其組成元素劃分為不同的獨立部分。
Ⅱ.數據庫分區通常是出于可管理性、性能或可用性或負載平衡的原因而進行的。
Ⅲ.在分布式數據庫管理系統中分區是很流行,其中每個分區可以分布在多個節點上,節點上的用戶在分區上執行本地事務。由于數據的分區,使得系統的整體性能得以提升。
Ⅳ.數據的分區方法:垂直分區、水平分區、混合分區。
16.提高架構的穩定性的方法:
①服務拆分:服務治理,服務調用,服務依賴,服務隔離。
②服務冗余:服務調度,彈性伸縮,故障遷移,服務發現。
③限流降級:異步隊列,降級控制,服務熔斷。
④高可用架構:多租戶系統,災備多活,高可用服務。
⑤高可用運維:運維系統,全棧監控,Devops,自動化運維。
17.分布式服務的關鍵技術:
①服務治理。
②架構軟件管理。
③DevOps。
④自動化運維。
⑤資源調度管理。
⑥整體架構監控。
⑦流量控制。
在計算機領域,當單機性能達到瓶頸時,可以解決性能問題的辦法:
1.堆硬件,進一步提升配置。
2.分布式,水平擴展。
總結
- 上一篇: 分布式操作系统的架构与性能
- 下一篇: 分布式系统简述