1樓
飛絮 發(fā)表于:2013/3/21 0:21:25
何謂大規(guī)模并發(fā),不同層面有不同的理解
企業(yè)應用(Intranet):千級強并發(fā),萬級弱并發(fā)(在線用戶),十萬級用戶
- 大型企業(yè)ERP、供應鏈,大型企業(yè)HR、辦公OA
互聯(lián)網(wǎng)應用(Internet):百萬級強并發(fā),千萬級弱并發(fā)(在線用戶),億級用戶/
- 門戶網(wǎng)站(新浪、騰訊)
- 平臺級電子商務(阿里巴巴、淘寶網(wǎng)、拍拍網(wǎng))
- 搜索引擎(百度)
電子商務企業(yè)應用(Intranet + Internet):十萬級強并發(fā),百萬級弱并發(fā)(在線用戶),千萬級用戶
- B2C電子商務(京東、凡客、一號店)
- 垂直型電子商務(金銀島、攜程)
不同系統(tǒng)間的并發(fā)特點
企業(yè)系統(tǒng)
大量事務性、實時性訪問
- 大量的事務、鎖檢測導致數(shù)據(jù)庫訪問瓶頸
- 需要數(shù)據(jù)操作的實時更新
大量有狀態(tài)性訪問
- 數(shù)據(jù)訪問具有較強的操作上下文
- 數(shù)據(jù)一致性、準確性的高敏感
- 數(shù)據(jù)每一次事務性更新都必須得到充分展現(xiàn),并且確保數(shù)據(jù)訪問的一致性
清晰的業(yè)務邏輯進行并發(fā)劃分
- 一般來說,企業(yè)系統(tǒng)都可以進行明確的業(yè)務區(qū)分,從而決定系統(tǒng)特點
互聯(lián)網(wǎng)系統(tǒng)海量非事務性訪問
- 極其巨大的數(shù)據(jù)量及數(shù)據(jù)訪問導致IO操作成為瓶頸
模糊的并發(fā)區(qū)分
- 并發(fā)訪問的用戶中很難通過內容進行有效分發(fā)
- 并發(fā)訪問一般具有地域性
數(shù)據(jù)訪問效率的高敏感
- 用戶對系統(tǒng)的響應時間非常敏感,需要在幾秒內得到信息反饋
- 用戶更加在意數(shù)據(jù)的匹配性
電子商務系統(tǒng)數(shù)據(jù)實時性的高敏感
價格、信息同步的一致性等
受制于企業(yè)級系統(tǒng)的約束
海量非事務性訪問+一定規(guī)模事務性訪問
信息訪問具有互聯(lián)網(wǎng)系統(tǒng)特點、信息操作具有企業(yè)系統(tǒng)特點
- 如數(shù)據(jù)的搜索查詢、展現(xiàn)具有互聯(lián)網(wǎng)系統(tǒng)特點
- 如數(shù)據(jù)的操作(支付、結算)具有企業(yè)系統(tǒng)事務性特點
什么是性能問題- 在可識別的壓力下,系統(tǒng)無法提供服務 (最差的性能問題)
- 在可識別的壓力下,系統(tǒng)無法按服務質量標準提供服務 (滿足性能標準,但是健壯性不足)
- 在可識別的壓力下,系統(tǒng)無法持續(xù)按服務質量標準提供服務 (系統(tǒng)的可靠性和健壯性)
- 在超過識別的壓力下,系統(tǒng)無法盡快恢復
- 能否有故障轉移、故障恢復、冗余熱備等機制
- 在超過識別的壓力下,系統(tǒng)無法柔性伸縮 (系統(tǒng)的可伸縮性)
什么不是性能問題
- 超過可識別的壓力情況下,系統(tǒng)暫時無法有效提供服務
性能測量服務質量
- 網(wǎng)絡響應:網(wǎng)絡響應時間、網(wǎng)絡吞吐量、網(wǎng)絡帶寬及帶寬利用率
- 服務響應時間:包括平均、峰值、標準區(qū)間值
- 服務處理質量:事務成功率、單位時間響應事務次數(shù)
服務端設備狀態(tài)
- CPU:CPU使用率
- 內存:使用內存大小
- VM:GC次數(shù)(Full GC次數(shù))、堆內存、線程數(shù)、鎖和阻塞情況
- 磁盤IO:磁盤訪問效率、磁盤空間、磁盤IO吞吐量
系統(tǒng)可靠性、健壯性
- 單節(jié)點處理的訪問量
- 故障恢復時間
- 節(jié)點復制和節(jié)點擴展的難易
系統(tǒng)可能的性能瓶頸
網(wǎng)絡
- 網(wǎng)絡帶寬的總體限制
- 網(wǎng)絡連接數(shù)的限制(如TCP/IP, 數(shù)據(jù)庫連接等)
服務器
- 每個響應占用相應的資源,導致內存成為瓶頸
- 比如JVM為每個線程分配棧空間,過多棧空間導致內存消耗
- 比如每個HTTP連接在Session存儲內容,導致OOME
- 同時響應一定量的并發(fā)操作,導致CPU占用過高
磁盤IO
- 頻繁訪問數(shù)據(jù)庫,導致數(shù)據(jù)交換IO操作頻繁
- 頻繁訪問IO文件,導致磁盤IO成為瓶頸
企業(yè)級系統(tǒng)架構及技術特點架構設計基于SOA和MDA的架構
- 以服務為核心單元的 設計思想,以傳統(tǒng)WS作為服務發(fā)布
- 以模塊化為系統(tǒng)構建方式,重視應用子系統(tǒng)和子模塊的獨立性和可重用性
中央集中式部署架構
- 專業(yè)小型服務器
- 一般不會超過5臺部署服務器,不會多于10個應用節(jié)點
- 熱備和故障恢復機制、災備系統(tǒng)
關注流程
- 工作流技術,尤其是分布式節(jié)點間流程整合
- 企業(yè)系統(tǒng)間的無縫轉移
門戶
技術運用以商業(yè)性產(chǎn)品為主
- 追求單節(jié)點穩(wěn)定性
- 較少需要7*24小時支持
- 以商業(yè)性關系數(shù)據(jù)庫為主要存儲
比較嚴格的事務性訪問
- 完全基于數(shù)據(jù)庫事務
- 分布式事務(JTA)
較為復雜并且功能豐富的用戶界面
- 用戶具有相對統(tǒng)一的客戶端(比如使用IE瀏覽器)
- 用戶可以接受適當?shù)捻憫脱舆t
互聯(lián)網(wǎng)系統(tǒng)架構及技術特點
架構設計
以界面展現(xiàn)和用戶體驗為主要設計
- 大量運用Ajax實現(xiàn)局部提交和局部刷新
以輕量級、伸縮性為架構主要考慮
- 除某些平臺級應用外,極少使用服務擴展
- 使用REST風格的WebService或者純粹的處理Json的Web響應
- 數(shù)以百臺甚至上萬臺PC服務器,多個數(shù)據(jù)中心,站點鏡像
- 分布式獨立域以及部署域之間定時通信
高性能緩存機制
- 雙向頁面緩存
- 內容靜態(tài)化技術
- 數(shù)據(jù)緩存
非事務、非關系型數(shù)據(jù)庫
技術運用大量使用開源技術產(chǎn)品
- LAMP: Linux + Apache + MySQL + PHP
- Tomcat, Lucene, Memcache
簡單界面開發(fā)技術
- 腳本語言,如PHP, Python, Ruby等
- 對多種瀏覽器的支持
底層高性能處理優(yōu)化
- 使用C、C++實現(xiàn)底層通信和IO優(yōu)化
電子商務系統(tǒng)架構及技術特點架構設計關注數(shù)據(jù)的糅合(Mashup)
關系數(shù)據(jù)庫與高性能NoSQL數(shù)據(jù)庫結合
不固定的架構設計思路
- 可能偏互聯(lián)網(wǎng)方向,也可能偏企業(yè)系統(tǒng)方向
- 分布式部署
事務緩存機制
較為嚴格的安全機制
與企業(yè)系統(tǒng)的對接交互
- 與銀行、支付平臺的對接
- 與企業(yè)訂單系統(tǒng)、進銷存系統(tǒng)、物流系統(tǒng)的對接
技術運用有時效的緩存機制
大量數(shù)據(jù)挖掘和分析運用
部分運用商業(yè)中間件技術產(chǎn)品
大量的開源技術運用