內容是指內容熱點,比如對于search來說,就按體育,數碼,音樂等劃分,不同內容有不同熱點數據,以及不同搜索關鍵匹配.
時間, 時間是一個非常重要的因素,在一些特點是時間段呢,性能的要求會非常高.比如下半夜的訪問點擊量和白天的就有不同.對于一些batch來說, 月末或者年末處理的單量就有明顯的提高,比如分紅險的記息,平時每天只有7000單,而年末會有12w單.
地點劃分,不太常見,不過也有助于分配計算資源.
業務層面的分析不僅是確定問題所在,還是確定優化的策略.比如有一個batch計算,執行時間比較長,而通過業務分析,發現該計算只針對特定的業務, 系統全部有效單量是12w單,而符合計算要求的只有3000單,只要加上一個前置判斷就可以免除無謂的計算,運行時間減少數個小時(大約0.2秒一單).
2. 技術層面
系統建立時技術結構,通常一個系統結構如下:接入網絡,Web服務器,應用服務器,以及數據庫服務器.
在這樣結構下,要小心的分析和驗證系統性能的瓶頸,需要優化Web服務器,或者提高數據庫并發能力等等。這部分網上的資料非常多。
三、架構的開發成本以及品質問題解決討論
架構一個重大關注點在于控制開發成本,這點很重要,因為通常講維護成本是開發成本的3倍。降低開發成本核心,在于提高效率,這也意味著提高了開發對需求的響應時間,而時間對公司來說是重要的。
提高開發效率和品質的基本手段是分解——即充分的分離系統中不同的關注點,好處不用說了,可以并發的工作,每個人面對的問題都簡單而容易操作。而與分解對應的集成,只有提供了好的集成能力,分解才成為現實,而只有分解了,才能清晰的提供業務更多適應性。
分解和集成的手段分為編程語言和技術框架兩個層面。所謂語言就是強框架,而框架就是弱語言。
現代面向對象的語言提供如下能力:抽象和派生能力,以及接口隔離能力。實際提供兩種分解和集成能力:
1. 把邏輯分解在兩個層次中,而通過繼承的方式把兩個部分集成在一起。
2. 把邏輯的外觀和實現分解在兩個地方,而通過接口實現的方式把兩部分集成在一起。
另一種語言AspectJ或者C#語言2.0之后提供的特性:把流程邏輯,分解在不同的地方,而通過簽名匹配,利用代碼生成的方式來把幾部分集成在一起。
然而語言提供的集成能力,畢竟底層,而且有限,擴展起來也格外小心。因而技術框架提供另外的集成能力就格外重要:
1. 對象關聯關系的分解和集成,如Spring提供容器管理能力
文章來源于領測軟件測試網 http://www.kjueaiud.com/