最近在考慮電商平臺高併發下訂單處理問題,web
總結以下:數據庫
1.絕大部份的BS系統最大的性能瓶頸我以爲應該在DATABASE 編程
爲何?由於其它影響因素(網絡,存儲,WEB服務器......),是能夠經過投入比較快速的解決 緩存
網絡?經過增長帶寬解決;存儲?經過存儲設備或區域存儲,便可解決大容量,可靠性問題;服務器
WEB服務器?能夠經過四層或七層負 載均衡解決。網絡
2.而DATABASE最大受限在INSERT,也就是業務上所說的「提交」或「保存」 併發
爲何?對於數據的查詢,能夠經過緩存集羣解決。提交或保存,帶來的DB是write lock,是排它性;並隨着數據量大或併發高,鎖的粒度,鎖的時長更大,問題更嚴重。 編程語言
3.解決之道? 高併發
隊列也。 性能
HTTPSQS
● 很是簡單,基於 HTTP GET/POST 協議。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP協議的編程語言都可調用。
● 很是快速,入隊列、出隊列速度超過10000次/秒。
● 高併發,支持上萬的併發鏈接,C10K不成問題。
● 支持多隊列。
● 單個隊列支持的最大隊列數量高達10億條。
● 低內存消耗,存儲幾十GB的數據只需不到100MB的物理內存緩衝區。
● 能夠在不中止服務的狀況下便捷地修改單個隊列的最大隊列數量。
● 能夠實時查看隊列狀態(入隊列位置、出隊列位置、未讀隊列數量、最大隊列數量)。
● 能夠查看指定隊列ID(隊列點)的內容,包括未出、已出的隊列內容。
● 查看隊列內容時,支持多字符集編碼。 配置使用以下 1、前期準備 依賴包 http://httpsqs.googlecode.com/files/libevent-2.0.12-stable.tar.gz http://httpsqs.googlecode.com/files/tokyocabinet-1.4.47.tar.gz http://httpsqs.googlecode.com/files/httpsqs-1.7.tar.gz
2、安裝配置 tar zxvf libevent-2.0.12-stable.tar.gz cd libevent-2.0.12-stable/ ./configure --prefix=/usr/local/libevent-2.0.12-stable/ make make install