簡要介紹分佈式服務器系統的內部結構

最近剛好在開發一個分佈式服務系統,從服務器的搭建到服務軟件的設計方方面面都要親自動手,一段時間下來,頗有心得,拿來跟跟大家分享一下。

  首先,我們要知道什麼是分佈式服務系統?分佈式服務系統就是將服務系統的功能拆分,將各個功能放在幾個獨立的組件上,通過這幾個組件之間的相互協作,來完成整個系統的功能。在這裏,幾個獨立的組件可以是指幾個獨立的CPU,但更通常的是指網絡上的幾臺計算機。

  採用分佈式系統,最大的優點表現在系統的處理速度上。系統的各個功能放在幾個獨立的組件上,各部分的組件完成自己的功能塊,以並行的方式協同工作。我們可以假設一個服務過程A要由1、2、3三個任務塊,每個任務塊要花費5秒鐘來完成的話,普通的服務系統就需要15秒鐘才能完成一個服務過程;但是如果採用分佈式服務系統的話,最快可以達到5秒鐘就可以完成這個服務過程。而且,分佈式服務系統由於其處理各部分功能集中,可以最大程度上提高各部分服務器硬件的能力,如專門負責數據處理的可以降低硬件的其他成本而提高其處理器能力,這也很大程度上有利於提高他的處理速度。分佈式服務系統另外優點在於個功能模塊分開,便於管理、維護和更新,服務器的管理維護在大型的服務系統中也是相當重要的。

  舉個例子來說吧,我們當前開發的這個分佈式定貨服務系統,就是通過三個服務器組建而成:一個IIS WEB發佈服務器;一個COM+ APPSERVER;一個MS_SQL數據庫服務器。我就借這個例子,來說明一下一個典型的分佈式服務系統大致的組成部分:

  表示層。表示層主要負責業務層與用戶之間的交流接口和數據傳遞工作,這部分雖然是唯一一個直接與用戶打交道的部分,但是在整個服務系統設計中,工作最簡單的一部分。它只要負責業務層與用戶間簡單的數據傳遞以及一些簡單的數據處理就行了。上面例子中的IIS WEB服務器就是屬於這一部分。

  業務層。這是分佈式服務系統的心臟,最主要的數據處理工作和服務就由這一部分完成和提供。在服務系統組建和服務軟件開發過程中,這一部分花費的時間和精力也是最多的。例子中的COM+服務器就屬於這一部分,主要負責定單的處理,如果計算運費、收益利潤等等事情。

  數據源。這部分主要用於存儲數據。目前市面上的SQL Server,Oracle等數據庫系統基本上能完成大部分的工作。不過我們有時候需要根據自己的需要做一些功能的擴展。但這些開發過程的分量是微不足道的。例子中的MS_SQL數據庫服務器就屬於這一部分。

  從上面的例子我們可以看出來,一個簡單的分佈式服務系統,由於個部分功能和用途不一樣,所以對其軟硬件要求也不一樣。對於負責表示層的服務器,要求是最低的,所以就硬件選擇上,應該着重它的經濟性,並不需要太高的服務器配置。對於負責業務層的服務器,我們從上面的分析過程中也看出來了,他是處理數據的主要部分,所以它的處理速度和能力在極大程度上決定了整個系統的速度和能力,所以軟件開發上要要特別注重它同前(數據源)後(表示層)之間的並行處理能力,注重軟件的處理速度,資源消耗等問題;在硬件上,對CPU和內存的要求也是整個系統中最高的。最後是負責數據源的服務器,他的軟硬件要求要根據具體的情況而,如果數據量比較大,就要採用大的數據庫系統如Oracle,其存儲器要求也是要求大而快;如果數據量比較小,可以採用SQL Server,My_SQL等數據庫服務器。數據源服務器的CPU、內存選取也要根據數據查詢檢索要求而定,如果數據查詢檢索比較繁多,數據量又特別大的話,就需要注重選取快的CPU和大的內存了。
發佈了39 篇原創文章 · 獲贊 0 · 訪問量 1311
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章