企业级系统架构设计技术与互联网应用技术结合主题一 大规模并发性能问题探讨...
何謂大規模并發,不同層面有不同的理解
企業應用(Intranet):千級強并發,萬級弱并發(在線用戶),十萬級用戶
?
?? ?大型企業ERP、供應鏈,大型企業HR、辦公OA
互聯網應用(Internet):百萬級強并發,千萬級弱并發(在線用戶),億級用戶/
門戶網站(新浪、騰訊)
平臺級電子商務(阿里巴巴、淘寶網、拍拍網)
搜索引擎(百度)
電子商務企業應用(Intranet + Internet):十萬級強并發,百萬級弱并發(在線用戶),千萬級用戶
B2C電子商務(京東、凡客、一號店)
垂直型電子商務(金銀島、攜程)
不同系統間的并發特點
企業系統
大量事務性、實時性訪問
大量的事務、鎖檢測導致數據庫訪問瓶頸
需要數據操作的實時更新
大量有狀態性訪問
數據訪問具有較強的操作上下文
數據一致性、準確性的高敏感
數據每一次事務性更新都必須得到充分展現,并且確保數據訪問的一致性
清晰的業務邏輯進行并發劃分
一般來說,企業系統都可以進行明確的業務區分,從而決定系統特點
互聯網系統
海量非事務性訪問
極其巨大的數據量及數據訪問導致IO操作成為瓶頸
模糊的并發區分
并發訪問的用戶中很難通過內容進行有效分發
并發訪問一般具有地域性
數據訪問效率的高敏感
用戶對系統的響應時間非常敏感,需要在幾秒內得到信息反饋
用戶更加在意數據的匹配性
電子商務系統
數據實時性的高敏感
價格、信息同步的一致性等
受制于企業級系統的約束
如支付,受事務性影響
海量非事務性訪問+一定規模事務性訪問
信息訪問具有互聯網系統特點、信息操作具有企業系統特點
如數據的搜索查詢、展現具有互聯網系統特點
如數據的操作(支付、結算)具有企業系統事務性特點
什么是性能問題
在可識別的壓力下,系統無法提供服務 (最差的性能問題)
在可識別的壓力下,系統無法按服務質量標準提供服務 (滿足性能標準,但是健壯性不足)
在可識別的壓力下,系統無法持續按服務質量標準提供服務 (系統的可靠性和健壯性)
在超過識別的壓力下,系統無法盡快恢復
能否有故障轉移、故障恢復、冗余熱備等機制
在超過識別的壓力下,系統無法柔性伸縮 (系統的可伸縮性)
什么不是性能問題
超過可識別的壓力情況下,系統暫時無法有效提供服務
性能測量
服務質量
網絡響應:網絡響應時間、網絡吞吐量、網絡帶寬及帶寬利用率
服務響應時間:包括平均、峰值、標準區間值
服務處理質量:事務成功率、單位時間響應事務次數
服務端設備狀態
CPU:CPU使用率
內存:使用內存大小
VM:GC次數(Full GC次數)、堆內存、線程數、鎖和阻塞情況
磁盤IO:磁盤訪問效率、磁盤空間、磁盤IO吞吐量
系統可靠性、健壯性
單節點處理的訪問量
故障恢復時間
節點復制和節點擴展的難易
?
系統可能的性能瓶頸
網絡
網絡帶寬的總體限制
網絡連接數的限制(如TCP/IP, 數據庫連接等)
服務器
每個響應占用相應的資源,導致內存成為瓶頸
比如JVM為每個線程分配棧空間,過多棧空間導致內存消耗
比如每個HTTP連接在Session存儲內容,導致OOME
同時響應一定量的并發操作,導致CPU占用過高
磁盤IO
頻繁訪問數據庫,導致數據交換IO操作頻繁
頻繁訪問IO文件,導致磁盤IO成為瓶頸
企業級系統架構及技術特點
架構設計
基于SOA和MDA的架構
以服務為核心單元的 設計思想,以傳統WS作為服務發布
以模塊化為系統構建方式,重視應用子系統和子模塊的獨立性和可重用性
中央集中式部署架構
專業小型服務器
一般不會超過5臺部署服務器,不會多于10個應用節點
熱備和故障恢復機制、災備系統
關注流程
工作流技術,尤其是分布式節點間流程整合
企業系統間的無縫轉移
門戶
跨系統,跨節點間的單點登錄
技術運用
以商業性產品為主
追求單節點穩定性
較少需要7*24小時支持
以商業性關系數據庫為主要存儲
比較嚴格的事務性訪問
完全基于數據庫事務
分布式事務(JTA)
較為復雜并且功能豐富的用戶界面
用戶具有相對統一的客戶端(比如使用IE瀏覽器)
用戶可以接受適當的響應和延遲
?
互聯網系統架構及技術特點
架構設計
以界面展現和用戶體驗為主要設計
大量運用Ajax實現局部提交和局部刷新
以輕量級、伸縮性為架構主要考慮
除某些平臺級應用外,極少使用服務擴展
使用REST風格的WebService或者純粹的處理Json的Web響應
數以百臺甚至上萬臺PC服務器,多個數據中心,站點鏡像
分布式獨立域以及部署域之間定時通信
高性能緩存機制
雙向頁面緩存
內容靜態化技術
數據緩存
非事務、非關系型數據庫
全面NoSQL數據庫
技術運用
大量使用開源技術產品
LAMP: Linux + Apache + MySQL + PHP
Tomcat, Lucene, Memcache
簡單界面開發技術
腳本語言,如PHP, Python, Ruby等
對多種瀏覽器的支持
底層高性能處理優化
使用C、C++實現底層通信和IO優化
電子商務系統架構及技術特點
架構設計
關注數據的糅合(Mashup)
關系數據庫與高性能NoSQL數據庫結合
不固定的架構設計思路
可能偏互聯網方向,也可能偏企業系統方向
分布式部署
事務緩存機制
事務遷移、事務恢復、事務批量處理
較為嚴格的安全機制
部分功能使用HTTPS及數字證書
與企業系統的對接交互
與銀行、支付平臺的對接
與企業訂單系統、進銷存系統、物流系統的對接
技術運用
有時效的緩存機制
確保數據實時性與性能的平衡
大量數據挖掘和分析運用
相關性分析
定向推薦
部分運用商業中間件技術產品
應用服務器
業務流程管理
大量的開源技術運用
Java相關開源技術比較常見
更多內容請關注微信公眾號:it_haha
轉載于:https://blog.51cto.com/doujh/1812497
總結
以上是生活随笔為你收集整理的企业级系统架构设计技术与互联网应用技术结合主题一 大规模并发性能问题探讨...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 结构体 枚举类型
- 下一篇: 如何在Mac上安装win10正版系统