paulwong

          讀書筆記-架構(gòu)2

          改善非功能需求的最佳實踐

          冗余
          負(fù)載均衡
          方式有網(wǎng)絡(luò)切換、集群管理、基于DNS配置的切換
          算法有隨機(jī)算法、選擇響應(yīng)時間最快的算法、選擇負(fù)載最輕的算法、重型算法
          失敗轉(zhuǎn)移

          集群
          將服務(wù)器組成一組,來統(tǒng)一進(jìn)行管理,檢測軟、硬件的失敗,處理系統(tǒng)的失敗轉(zhuǎn)移,自動因失敗事件而重啟

          集群配置方式
          兩節(jié)點集群、集群對、Ring、N+1、N to N

          改善性能
          性能有兩個關(guān)鍵點:
          處理時間,從計算、數(shù)據(jù)調(diào)度、緩存和網(wǎng)絡(luò)傳輸
          阻塞時間,來源于資源競爭和另一流程的依賴

          處理措施
          使用好的算法或適用的技術(shù)
          引入并行計算、限制并發(fā)請求以避免系統(tǒng)過度使用、TIME OUT措施

          高可用
          可用是指隨時才能訪問,不能訪問的原因是硬件、網(wǎng)絡(luò)、服務(wù)器軟件、和應(yīng)用組件的失敗;
          如果一個應(yīng)用組件不能提供足夠快的響應(yīng)時間也是指不可用了,這是指系統(tǒng)正常運行情況下,由于正在同時處理很多任務(wù)而導(dǎo)致的延時。

          改善措施
          集群中的復(fù)制,有活躍式的復(fù)制:發(fā)給所有節(jié)點,節(jié)點都同時進(jìn)行運算,但只采用其中一個作為響應(yīng);被動式的復(fù)制,只有主節(jié)點響應(yīng)請求,其他節(jié)點與主節(jié)點同步。

          擴(kuò)展性改善
          擴(kuò)展的原因通常是因為需求的變更。最重要的目標(biāo)是改善系統(tǒng)開發(fā)以適應(yīng)快速的變化。

          可采取的方法有:
          定義清晰的范圍、預(yù)知可能的變更(如果界面技術(shù),隔離這一區(qū)域使其不能波及到其他地方)、使用高質(zhì)量的對象模型(使用MVC模式來解耦界面組件和業(yè)務(wù)組件)

          伸縮性的改善
          垂直伸縮:增加處理器或內(nèi)存等,對系統(tǒng)是透明的;
          水平伸縮:增加服務(wù)器,必須避免對服務(wù)器物理位置的依賴。

          架構(gòu)中的層

          兩層結(jié)構(gòu)的系統(tǒng)

          指C/S架構(gòu)的程序。通常指包含了展示和業(yè)務(wù)邏輯的客戶端和服務(wù)器上的數(shù)據(jù)庫。展示和業(yè)務(wù)邏輯緊密結(jié)合。

          優(yōu)點
          安全是一點,由于這些系統(tǒng)是位于防火墻后面,員工不能使用不安全的的PC。性能通常比較好,如果公司不使用比較老的很少內(nèi)存的電腦的話。

          缺點
          可用性是一個缺點,因為如果一個元件不能工作的時候,整個系統(tǒng)就變得不可用。
          伸縮性是一個問題,由于維一能夠增加的元件是數(shù)據(jù)庫。
          為了能增加新功能,你很明顯會影響到其他元件,擴(kuò)展性不行。
          可管理性也是一個問題,監(jiān)控所有正在運行客戶端的PC是不可能的。
          可維護(hù)性和可擴(kuò)展性一樣。
          可靠性不是一個優(yōu)點或缺點,由于請求增加時,所有的這些請求來到數(shù)據(jù)庫,所有的數(shù)據(jù)庫能處理增長的交易吞吐量。

          三或多層架構(gòu)的系統(tǒng)
          三層架構(gòu)由WEB,業(yè)務(wù)邏輯和資源層組成。多層架構(gòu)的系統(tǒng)有WEB,業(yè)務(wù)邏輯,整合和資源層。在非功能需求方面,三層和多層架構(gòu)的系統(tǒng)擁有相同的優(yōu)點和缺點。

          優(yōu)點
          當(dāng)將展示層邏輯從PC客戶端移到服務(wù)器端,而能被集群時,伸縮性被改善了。
          由于集群層能夠提供失敗轉(zhuǎn)移機(jī)制,可用性也有所改善。
          由于功能被分解到不同的層中,擴(kuò)展性也有所改善。你可以更改表現(xiàn)層又能使得對業(yè)務(wù)邏輯影響最小。
          對于可維護(hù)性也是這樣。
          由于各層是部署在服務(wù)器上,使得監(jiān)控各個元件變得更容易,這樣可管理性也提高了。
          分層對于安全性可以做得更多,但必須小心對性能造成影響。
          性能可能是優(yōu)點或缺點。主要還是優(yōu)點,當(dāng)分割線程到各服務(wù)器上時,如果你要在服務(wù)器間傳送大數(shù)據(jù)時,這時可能會變成缺點了。

          缺點
          多層系統(tǒng)原生是比較復(fù)雜,多層架構(gòu)的系統(tǒng)其實是沒有所謂的缺點。雖然這樣說,并不會由于你有了多層設(shè)計,你就有了很好的架構(gòu)。必須記得不要過度使用層數(shù)。

          小結(jié)
          架構(gòu)是一系列的使得系統(tǒng)能夠由一組具有自己的上下文的簡單的子系統(tǒng)組成的結(jié)構(gòu)規(guī)則。

          性能是指系統(tǒng)的響應(yīng)時間,如必須在3秒內(nèi)響應(yīng)。

          伸縮性是指當(dāng)訪問量增加時可以增加冗余的組件,部署到增加的服務(wù)器上時,原系統(tǒng)無須作更改。C/S結(jié)構(gòu)的系統(tǒng),由于系統(tǒng)安裝在客戶端,就不能作這種伸縮。

          擴(kuò)展性,是指增加或修改功能時對現(xiàn)有的系統(tǒng)不會構(gòu)成影響。如MODEL1的情形,系統(tǒng)沒有分層,所有代碼混在一起,更改時會互相影響。

          可靠性,是指訪問量增加的時候,事務(wù)有保證。通常數(shù)據(jù)庫對增加的請求,事務(wù)的保證方面已經(jīng)是有所處理了。

          可用性,是指系統(tǒng)中的某個元件失敗時,系統(tǒng)還能訪問。如果是C/S架構(gòu)的系統(tǒng),無法分層,某個元件出現(xiàn)問題時,系統(tǒng)就不可用了。

          可維護(hù)性,是指調(diào)整現(xiàn)有的系統(tǒng)流程,不會影響到其他元件。

          可管理性,是指能監(jiān)控系統(tǒng)伸縮能力,可靠性,可用性,性能和安全。

          安全性,是指系統(tǒng)能夠阻擋非法訪問。

          posted on 2012-07-23 17:58 paulwong 閱讀(313) 評論(0)  編輯  收藏 所屬分類: SOFTWARE ARCHITECTURE

          主站蜘蛛池模板: 邮箱| 遂溪县| 宜昌市| 滦平县| SHOW| 葫芦岛市| 都兰县| 广平县| 连城县| 凤庆县| 德化县| 天等县| 石河子市| 顺昌县| 衡南县| 上林县| 辉县市| 都江堰市| 抚宁县| 门头沟区| 中宁县| 南溪县| 武义县| 永康市| 鄯善县| 广宁县| 肥东县| 临邑县| 兴和县| 娱乐| 石屏县| 黄骅市| 宁德市| 武定县| 盘山县| 丹阳市| 天等县| 沾益县| 科技| 滨海县| 灵璧县|