分布式系统开发注意点_分布式系统开发注意事项
分布式系統(tǒng)開發(fā)注意點
開發(fā)分布式軟件系統(tǒng)時,要考慮許多因素。 如果您甚至不知道第一句話中我在說什么,那么讓我為您提供一些見解,示例以及有關分布式系統(tǒng)的實例。
總覽
分布式系統(tǒng)是指多個物理硬件設備與單獨的離散用戶交互并通過這些硬件設備協(xié)作以為這些離散的單獨用戶實現(xiàn)不同且相似的目標。 有時,這些設備使用服務器作為集線器以點對點模式工作,以了解彼此之間的連通性,而其他設備則通過單個或一組集中式服務器進行協(xié)作和協(xié)調(diào),例如
類似于Extranet的系統(tǒng),供方用戶通過Web瀏覽器審閱文檔,然后在其瀏覽器中單擊工作流,最終將文檔傳真給另一組用戶,這些用戶應提供帶有足夠標簽(即帶有條形碼)的服務。 這個循環(huán)使封閉的系統(tǒng)可以設計和開發(fā)分布式軟件。 傳真的接收者填寫并做任何需要作為其紙本世界的一部分的事情(包括隨著時間的流逝接收許多傳真并將其全部發(fā)送回去,這是另一篇有關電子簽名的博客文章的案例) 。 接收到的傳真服務器在接收到入站原始文檔后,會將接收到的傳真圖像“移交給”另一組用戶(甚至是發(fā)起出站傳真的同一用戶)進行整理和處理,以在接收下對其進行檢查和處理在他們的瀏覽器中再次進行工作流程。
在這里,您有許多系統(tǒng)在數(shù)據(jù)中心內(nèi)協(xié)同工作以實現(xiàn)不同的目標。 您有一些用于用戶界面的Web服務器。 用于工作流系統(tǒng),分析和報告的某些數(shù)據(jù)持久性層。 您有用于管理傳入/傳出傳真?zhèn)鬏數(shù)膫髡娣掌?#xff08;我自己喜歡Dialogic Brooktrout傳真板,我自己http://www.dialogic.com/Products/fax-boards-and-software/fax-boards.aspx )。 您具有入站和出站標簽,標記,排序規(guī)則,掃描和對象字符識別組件(通常,根據(jù)設計,一些不同的服務器可能并不僅是一個單獨的實例,而且取決于規(guī)模可能只有六個左右)。
所有這些組件下面的結(jié)構(gòu)在所有這些組件之間都是一致的。 這始于OSI層,因為首先和大多數(shù)分布式系統(tǒng)是通過約束的物理層連接的,所以讓我們從這里開始。
物理層約束
OSI層有7層或9層,具體取決于您與誰交談。 在某些團隊中,第8層和第9層分別是政治和宗教,因為必須考慮到圍繞設計,開發(fā),部署和維護這些系統(tǒng)的所有交互的社會結(jié)構(gòu),方法論和人類行為。 如果您不滿意,那么您的應用程序?qū)佑脩趔w驗也可能會出錯。 第1-7層(較常見的層,通常是更好理解的層)對計算機如何通過用戶或計算機的接口以及通過另一計算機或另一用戶的接口到另一臺計算機的數(shù)據(jù)移動方式進行分類。 如果沒有重構(gòu)或在這些層中創(chuàng)建新軟件,您將永遠無法在基礎層之外做任何事情。 因此,很高興知道它們是如何工作的。 您可以在自己的軟件程序編寫工作中做到這一點(請,請相當高興),以更好地平衡處理約束。
http://fab.cba.mit.edu/classes/MIT/961.04/people/neil/ip.pdf的圖30-1映射了Internet協(xié)議套件的許多協(xié)議及其對應的OSI層。
軟件在硬件設備中繼續(xù)運行的位置
最重要的是本地機器硬件的操作系統(tǒng)及其實現(xiàn)。 我很難選擇真正構(gòu)成底層架構(gòu)的許多或其他任何層或系統(tǒng),具體取決于您的托管服務提供商,而該提供商最終還是一個供應商,所以這又是另一回事了……除非他們運行通過open編寫的軟件您已經(jīng)完成了源項目工作,但我離題了…… Linux編程接口:Linux和UNIX系統(tǒng)編程手冊是我喜歡Linux的資源。
怎么辦?
在過去的九年中,由于廉價(有時便宜)的商品硬件已成為我們所預見的現(xiàn)實,因此許多經(jīng)典計算機概念已變得更容易實現(xiàn)。 這使得并行和分布式計算平臺,分布式文檔和鍵/值存儲庫,分布式發(fā)布/訂閱經(jīng)紀人,發(fā)布者和消費者系統(tǒng),甚至具有不可變結(jié)構(gòu)的參與者模式也開始成為該結(jié)構(gòu)的一部分。 這里的難題是這些市場領域的競爭和起步階段,甚至還沒有“ 跨越鴻溝 ”。
現(xiàn)在,說完所有這些……就顯得很突出。 “ ZooKeeper提供了正確性和協(xié)調(diào)性的關鍵點,這些要點必須比所有希望將其本質(zhì)上構(gòu)建為自己的關鍵邏輯的系統(tǒng)都具有更高的交易保證。” 卡米爾·富尼耶(Camille Fournier)在我的一篇博客文章中讓我看到了這一點, 網(wǎng)址為http://whilefalse.blogspot.com/2013/05/zookeeper-and-distributed-operating.html?spref=tw ,這是因為Zookeeper是如何與許多此類動物聯(lián)系在一起的現(xiàn)有類型的系統(tǒng)。 由于這些系統(tǒng)尚未在市場上成熟(到目前為止,它已經(jīng)在早期采用者中充分成熟了),因此它們之間和內(nèi)部存在一些一致性,因此我們必須開始(從字面上)研究,支持和承諾。
現(xiàn)在,關于Zookeeper的另一個好處是,已經(jīng)開發(fā)了一個開放源代碼庫,并且(在所有條件相同的情況下)不斷維護該開放源代碼庫,使開發(fā)Zookeeper開發(fā)的可重復模式更加容易http://curator.incubator.apache.org/ 。 如果您從未使用過Zookeeper,建議您從http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html開始。
翻譯自: https://www.javacodegeeks.com/2013/06/distributed-system-development-considerations.html
分布式系統(tǒng)開發(fā)注意點
總結(jié)
以上是生活随笔為你收集整理的分布式系统开发注意点_分布式系统开发注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ddos攻击的过程(ddos过程描述故事
- 下一篇: 首选System.lineSeparat