国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
高并發(fā)web系統設計
寒假老師讓做一個像12306訂票網站一樣高并發(fā)系統解決方案的調研,經過一番辛苦調查,發(fā)現12306的工程師們并沒有那么差,反而心生萬分敬佩,同時這個經歷也驗證了老毛的那句話:沒有調查就沒有發(fā)言權。

一、一般高并發(fā)web系統
這里的一般指的是秒殺之類的電子商務系統,比如說小米搶購、淘寶雙十一、秒殺活動等等,12306訂票網站與其有本質區(qū)別,下面會有說到。

系統架構圖
下圖是我調查眾多資料總結出的系統架構圖,當然這也不能作為通用的解決方案,首先像淘寶等企業(yè)公布的資料肯定不是最先進或者是性能最好的,其次具體情況還需具體分析。

核心技術點
  • 前端優(yōu)化  前端優(yōu)化主要包括動態(tài)內容靜態(tài)化,增加前端緩存。頁面靜態(tài)化是指將指含有大量動態(tài)元素的動態(tài)網頁,如jsp、php等,轉換為html靜態(tài)頁面,靜態(tài)頁面由于不用加載動態(tài)元素,其訪問速度要比動態(tài)頁面快得多,可以增加訪問速度,減小數據庫壓力;前端頁面緩存在系統前端對Web服務器上的頁面進行緩存。
  • CDN技術  CDN即內容分發(fā)網絡,其基本思路是盡可能避開互聯網上有可能影響數據傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內容傳輸的更快、更穩(wěn)定。通過在網絡各處放置節(jié)點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節(jié)點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節(jié)點上。其目的是使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。
  • 負載均衡  負載均衡的基本思想是把高并發(fā)的訪問平均分配到每一個服務器節(jié)點上,從而減小分布式數據庫中每一個節(jié)點的壓力。
  • 中間件     數據庫的中間件技術是指把應用層與數據庫層分離,在中間增加一個部分,避免應用直接訪問數據庫。因為系統可能采用讀寫分離的技術,因而會使用不同的數據庫,中間件可以屏蔽數據庫直接的不同,提供統一的接口。中間件還負責事務的協調處理,起到數據連接管理的作用,多個客戶端連接通過中間件可以共用一個數據庫連接。
  • memcached  memcached是一個高性能的分布式內存對象緩存系統,通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提高動態(tài)、數據庫驅動網站的速度,它是基于一個存儲鍵/值對的hashmap。
  • 并發(fā)控制   數據庫限流,達到數據庫的最大并發(fā)數,進入行鎖狀態(tài)。如不進行控制,一旦其中一個連接卡住,會引發(fā)雪崩效應,從而影響整個系統
  • 排隊系統   鎖機制導致排隊
  • 并行復制   采用并行復制的技術可以解決主備庫復制延遲問題
  • 數據庫拆分  分為水平拆分和垂直拆分,垂直拆分即按列拆分,把數據按應用分離,降低單個事務的數據處理量;水平拆分即按行拆分,降低節(jié)點的并發(fā)量
  • 讀寫分離   有些系統讀操作頻繁,而有些系統寫操作頻繁,讀寫分離能有效提高訪問速度


二、12306網站與淘寶的不同

12306的特殊性就在于其復雜性:
  • 頻繁的混合讀寫操作   
  • 座位實時復用   訂單之間關聯度較大,每賣出一張票,都需要調整整個車次所有可能區(qū)間的余票數量
調查之前,我也很簡單的認為,只要不停地增加節(jié)點數量,必然能解決搶票尖峰時刻的問題,其實不然,訪問速度主要受限于兩個方面,一個是CPU處理速度,另一個是磁盤I/O。而簡單的增加機器并不能解決這兩個瓶頸,相反,節(jié)點越多,數據同步的代價越大。為了更好的解釋其特殊性,需要引入一些基本概念。
  • 事務
淘寶、12306等電子商務系統都屬于面向交易的處理系統,即OLTP。數據庫中事務(Transaction)是訪問并可能更新數據庫中各種數據項的一個程序執(zhí)行單元(unit),具有四個屬性:原子性、一致性、隔離性、持久性,簡稱為ACID。
  •         原子性(Atomicity)  一個事務是一個不可分割的工作單位,事務中包括的諸操作要么都做,要么都不做。
  •         致性(Consistency)  事務必須是使數據庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。一致性與原子性是密切相關的。
  •         隔離性(Isolation)  一個事務的執(zhí)行不能被其他事務干擾。即一個事務內部的操作及使用的數據對并發(fā)的其他事務是隔離的,并發(fā)執(zhí)行的各個事務之間不能互相干擾。
  •         持久性(Durability)  持續(xù)性也稱永久性(permanence),指一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。
并行處理的核心就是隔離性,即不同的事務不能互相影響,一個用戶訂票行為不能影響其他用戶,否則會出現看到票卻買不到票的現象。隔離要處理三個問題:臟讀、不可重復讀和幻讀保證隔離性就要對數據加鎖,而鎖會導致排隊,排隊必然會產生時延,面對千萬級別的并發(fā),問題就產生了。所有關鍵的問題還是要提高單個事務的處理速度,即CPU,以及減小磁盤I/O的時間。12306從12年就開始進行技術改革,核心采用了Vmware Gemfire 內存數據庫技術,即把多個X86服務器虛擬成一個具有超大內存和處理速度的機器,把數據全部放在內存中計算,由內存與磁盤的I/O速度可以看出這種技術必然能大幅度提高性能。



現在想想,自己之前一想到12306就不禁要破口大罵,還說是體制問題、內部壟斷等等,真是可笑。
總之
,批評人之前先做好調查吧。


本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
數據庫中間件詳解(精品長文)
京東分布式數據庫系統演進之路
當當彈性化中間件及云化之路(據說讀完可以少踩坑)
余額寶技術架構及演進
濃縮精華的架構演進過程,我連看了六遍
水平分庫分表的關鍵問題及解決思路
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服