paulwong

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

          改善非功能需求的最佳實(shí)踐

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

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

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

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

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

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

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

          擴(kuò)展性改善
          擴(kuò)展的原因通常是因?yàn)樾枨蟮淖兏W钪匾哪繕?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)點(diǎn)
          安全是一點(diǎn),由于這些系統(tǒng)是位于防火墻后面,員工不能使用不安全的的PC。性能通常比較好,如果公司不使用比較老的很少內(nèi)存的電腦的話。

          缺點(diǎn)
          可用性是一個(gè)缺點(diǎn),因?yàn)槿绻粋€(gè)元件不能工作的時(shí)候,整個(gè)系統(tǒng)就變得不可用。
          伸縮性是一個(gè)問題,由于維一能夠增加的元件是數(shù)據(jù)庫。
          為了能增加新功能,你很明顯會影響到其他元件,擴(kuò)展性不行。
          可管理性也是一個(gè)問題,監(jiān)控所有正在運(yùn)行客戶端的PC是不可能的。
          可維護(hù)性和可擴(kuò)展性一樣。
          可靠性不是一個(gè)優(yōu)點(diǎn)或缺點(diǎn),由于請求增加時(shí),所有的這些請求來到數(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)點(diǎn)和缺點(diǎn)。

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

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

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

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

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

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

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

          可用性,是指系統(tǒng)中的某個(gè)元件失敗時(shí),系統(tǒng)還能訪問。如果是C/S架構(gòu)的系統(tǒng),無法分層,某個(gè)元件出現(xiàn)問題時(shí),系統(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

          主站蜘蛛池模板: 临武县| 吴桥县| 玛多县| 新巴尔虎左旗| 天峻县| 祥云县| 衢州市| 台东县| 东乡族自治县| 黎平县| 抚顺市| 江安县| 乌拉特后旗| 上饶市| 新邵县| 龙州县| 林芝县| 佳木斯市| 南川市| 个旧市| 阿合奇县| 邯郸市| 富蕴县| 塘沽区| 称多县| 保靖县| 桃江县| 辽阳市| 青冈县| 榆中县| 海宁市| 翼城县| 衡水市| 天全县| 杨浦区| 广南县| 象山县| 桃源县| 武清区| 阿尔山市| 米易县|