分佈式設計與開發(一)------宏觀概述


在IDF05(Intel Developer Forum 2005)上,Intel首席執行官Craig Barrett就取消4GHz芯片計劃一事,半開玩笑當衆單膝下跪致歉,給廣大軟件開發者一個明顯的信號,單純依靠垂直提升硬件性能來提高系統性能的時代已結束,分佈式開發的時代實際上早已悄悄地成爲了時代的主流,吵得很熱的雲計算實際上只是包裝在分佈式之外的商業概念,很多開發者(包括我)都想加入研究雲計算這個潮流,在google上通過“雲計算”這個關鍵詞來查詢資料,查到的都是些概念性或商業性的宣傳資料,其實真正需要深入的還是那個早以被人熟知的概念------分佈式。

分佈式可繁也可以簡,最簡單的分佈式就是大家最常用的,在負載均衡服務器後加一堆web服務器,然後在上面搞一個緩存服務器來保存臨時狀態,後面共享一個數據庫,其實很多號稱分佈式專家的人也就停留於此,大致結構如下圖所示:

這種環境下真正進行分佈式的只是web server而已,並且web server之間沒有任何聯繫,所以結構和實現都非常簡單。

有些情況下,對分佈式的需求就沒這麼簡單,在每個環節上都有分佈式的需求,比如Load Balance、DB、Cache和文件等等,並且當分佈式節點之間有關聯時,還得考慮之間的通訊,另外,節點非常多的時候,得有監控和管理來支撐。這樣看起來,分佈式是一個非常龐大的體系,只不過你可以根據具體需求進行適當地裁剪。按照最完備的分佈式體系來看,可以由以下模塊組成:

分佈式任務處理服務:負責具體的業務邏輯處理

分佈式節點註冊和查詢:負責管理所有分佈式節點的命名和物理信息的註冊與查詢,是節點之間聯繫的橋樑

分佈式DB:分佈式結構化數據存取

分佈式Cache:分佈式緩存數據(非持久化)存取

分佈式文件:分佈式文件存取

網絡通信:節點之間的網絡數據通信

監控管理:蒐集、監控和診斷所有節點運行狀態

分佈式編程語言:用於分佈式環境下的專有編程語言,比如Elang、Scala

分佈式算法:爲解決分佈式環境下一些特有問題的算法,比如解決一致性問題的Paxos算法

因此,若要深入研究雲計算和分佈式,就得深入研究以上領域,而這些領域每一塊的水都很深,都需要很底層的知識和技術來支撐,所以說,對於想提升技術的開發者來說,以分佈式來作爲切入點是非常好的,可以以此爲線索,探索計算機世界的各個角落。


本文轉自於:http://blog.csdn.net/cutesource/article/details/5811914



發佈了77 篇原創文章 · 獲贊 215 · 訪問量 82萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章