什么是分布式
--俗解--?
§什么是分布式系統?
1通俗點說分布式系統就是能把服務器端程序分開部署到多臺機器上。?
2跟分層毫無關系,跟它容易搞混的是集群?
分布式就是把一個系統分布在不同的節點上,各節點協同工作,缺一不可?
集群也是把一個系統部署在很多節點上,但是每個節點都能獨立工作,一個
節點當掉不仍然可以工作.?
--專業--?
? 分布式軟件系統(Distributed Software Systems)是支持分布式處理的軟
件系統,是在由通信網絡互聯的多處理機體系結構上執行任務的系統。它包括分
布式操作系統、分布式程序設計語言及其編譯(解釋)系統、分布式文件系統和
分布式數據庫系統等。?
? 分布式操作系統負責管理分布式處理系統資源和控制分布式程序運行。它
和集中式操作系統的區別在于資源管理、進程通信和系統結構等方面。?
分布式程序設計語言用于編寫運行于分布式計算機系統上的分布式程序。
一個分布式程序由若干個可以獨立執行的程序模塊組成,它們分布于一個分布式
處理系統的多臺計算機上被同時執行。它與集中式的程序設計語言相比有三個
特點分布性、通信性和穩健性。?
? 分布式系統是獨立計算機的集合體而這些計算機在系統用戶看來像是一
臺計算機。幾乎所有的大型軟件系統勢必是分布式的。例如企業范圍的商業
系統必須支持多個用戶在不同的地點運行公用應用程序。?
? 一個分布式系統包含各種各樣的應用程序、它們的基本支持軟件、它們借
以運行的硬件以及連接分布式硬件的通信鏈路。最大、最為人熟識的分布式系
統是構成萬維網的那一整套計算機、軟件和服務。萬維網遍布各地與大多數
其他現有分布式系統共存或連接。最常見的分布式系統是聯網的客戶/服務器系
統。分布式系統都具有以下描述的一般特性。?
1、資源共享?
將一組計算機連接成分布式系統的最常見原因是允許其分享物理資源和
計算資源(例如打印機、文件、數據庫、郵件服務、股票行情和合作應用程序
等)。支持資源共享的分布式系統組件發揮類似于操作系統的作用且與其越來
越難以區分。?
2、多節點?
分布式系統的軟件在節點或多臺獨立的計算機(不僅僅是同一臺計算機上的
多個處理器因為這屬于并行計算的領域)上執行。這些節點可以是個人計算機、
高性能工作站、文件服務器、大型機和巨型計算機。每個節點所扮演的角色可
以是向其他節點要求服務的客戶可以是向其他節點提供計算或資源服務的服
務器也可以是兼備兩者功能的對等體。一個分布式系統可以小至兩個節點
假如存在軟件連通性。這種安排如圖6a-1所示。?
3、并行性?
分布式系統中的每個節點既獨立工作又與所有其他節點并行工作。每個
節點多于一個進程(執行程序)每個進程多于一個線程(并行執行任務)可在
系統中充當組件。大多數組件具有反應性對來自用戶的命令和來自其他組件
的消息不斷地進行響應。像操作系統一樣分布式系統旨在避免終止因此應
始終保持至少部分可用的狀態。?
4、異構性?
系統中包含的節點可以由不同的計算與通信硬件組成。組成系統的軟件可
以包括不同的編程語言和開發工具。有些異構性問題可以通過使用共同的消息
格式或者在不同平臺(如個人計算機、服務器和大型機)上易于執行的低級協議
來解決。其他的可能要求構建將一套格式或協議轉變為另一套的網橋。更徹底
的系統集成可以通過這樣的方式達到即要求所有的節點支持對獨立于平臺的
程序指令進行處理的共同虛擬機。使用java編程語言的系統就采用這種方式。?
5、多種協議?
大多數分布式消息傳送與在順序程序范圍內使用的調用種類(如過程調用)
有相當大的區別。分布式通信的最基本形式是異步的。與郵政系統中郵寄的信
件類似發送者發送消息而不指望其接收者收到或答復。這種基本的分布式消
息抵達接收者通常要比本地調用花的時間長得多。它們有時以不同于發送的順
序到達接收者而且可能根本就不能到達接收者。為了避免這種情況必須構
建更復雜的協議。這些協議可能包括?
●過程消息接發在這種消息接發中發送者等待完整的答復?
●半同步消息接發在這種消息接發中發送者在繼續之前等待收到消息的
確認?
●事務處理協議在這種協議中一個給定的會話期或事務處理內的所有消
息要么全部被處理要么全部不被處理?
●回叫協議在這種協議中接收者過后給發送者發回不同的消息?
●超時協議在這種協議中發送者在繼續之前僅在一定的時間段內等待回
應?
●多址通信協議在這種協議中發送者同時給一組其他的節點發送消息。?
這些以及其他的協議常常被擴充和專門化以提高可靠性、安全性和效率。?
6、容錯?
? 在單獨一臺計算機上運行的程序其可靠性充其量僅與該計算機的可靠性
相等。而另一方面大多數分布式系統需要至少保持部分可用和發揮作用的狀
態即使其節點、應用程序或通信鏈路有些出故障或不正常情況。除徹底出故
障外應用程序可能因為帶寬不足、網絡爭用、軟件開銷或其他系統限制而出
現服務質量難以接受地低的情況。因此在分布式系統的構建中容錯的需求
提出了一些最為重要且困難的挑戰。?
7、安全性?
? 只有特許用戶可訪問敏感數據或執行關鍵操作。分布式系統的安全性本質
上是個多層次問題從每個節點的常駐硬件與操作系統所提供的基本安全保證
到信息加密與驗證協議到為隱私、內容適宜性和個人責任等問題提供支持的
機制。?
? 解決可靠性問題的技術包括使用數字證書和阻止組件編碼執行修改磁盤
文件等可能具有危險性的操作。
?
8、消息傳送?
? 不同計算機上的軟件通過建立于若干聯網協議(如tcp/ip)基礎上的結構化
消息傳送規程來進行通信。而這些協議則可以在若干連接技術(如以太網和調制
解調器)之任一種的基礎上運行。大多數分布式系統的節點是完全相連的--任一
節點可給任一其他節點發送消息。消息傳遞由基本的路由算法和相關的聯網支
持來完成。?
? 消息包括命令、服務請求、事件通知、多媒體數據、文件內容甚至完整
的程序。應注意的是大多數多處理器通過共享存儲器而不是消息傳送來進行
通信因此不是分布式的。?
9、開放性?
? 大多數順序程序被認為是封閉的因為在執行開始后它們的配置一直保持
不變。在一定程度上大多數分布式系統是開放的因為在系統運行期間可
以添加或改變節點、組件和應用程序。這就提供了容納擴展所必需的可擴展性
以及隨著系統所駐留的環境的變化而變化并應對之的能力。?
? 開放性要求每個組件遵守一組最起碼的策略、慣例和協議以確保更新或
添加的組件之間具有互操作性。以往最成功的開放式系統是那些提出最低限
度要求的系統。例如超文本傳輸協議的簡易性就是萬維網成功的一個主要原
因。?
? 國際標準化組織和美國國家標準協會等標準組織與對象管理組等工業財
團一起制定了構成許多互操作性保障之基礎的基本格式和協議標準。另外
單個分布式系統還依賴于和環境細節或域相關的策略和機制。?
10、隔離?
? 每個組件在邏輯上或物理上是獨立存在的僅通過結構化信息協議來與其
他組件進行通信。另外出于功能、性能或安全的考慮一組組的組件也可能
被分開。例如盡管一個公司用分布式系統的連通性可能延伸到整個因特網
但其基本功能可能(常常通過防火墻)限定于只在防火墻之內運行的局域網。這
樣它與系統的其他部分進行通信要通過限定的安全協議。?
11、持久性?
? 至少有些數據與程序保留在持久性介質上其持久性大于特定應用程序的
執行時間。可在文件系統、數據庫系統或編程語言的運行時支持機制等層次上
作出持久性安排。?
12、分散控制?
? 單獨的計算機無需對整個系統的配置、管理或策略控制擔負責任。分布式
系統反而是通過自主主體協議連接的域而這些自主主體為提供聚合功能要達
成足夠的共同策略。分散化在有些方面是可取的如為容錯而預先采取的措施。
分散化在另一些方面則是必不可少的因為集中控制不能適應當代系統所支持
的節點與連接數量。然而對系統范圍的策略實施管理的工具則可能限于特定
用戶使用。?
轉載于:https://blog.51cto.com/zhangyanfeng/1711457
總結
- 上一篇: mysql主从库配置方法
- 下一篇: 高考倒计时