標籤:
出處:http://www.cnblogs.com/bobsoft/p/3622691.html
最近在考慮電商平台高並發下訂單處理問題,
總結如下:
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(隊列點)的內容,包括未出、已出的隊列內容。
● 查看隊列內容時,支援多字元集編碼。 配置使用如下 一、前期準備 依賴包 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
二、安裝配置 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
tar zxvf tokyocabinet-1.4.47.tar.gz cd tokyocabinet-1.4.47/ ./configure --prefix=/usr/local/tokyocabinet-1.4.47/ #註:在32位Linux作業系統上編譯Tokyo cabinet,請使用./configure --enable-off64代替./configure,可以使資料庫檔案突破2GB的限制。 #./configure --enable-off64 --prefix=/usr/local/tokyocabinet-1.4.47/ make make installtar zxvf httpsqs-1.7.tar.gz cd httpsqs-1.7/ make make install
說明成功!
三、使用及協助文檔 啟動: httpsqs -d -p 1218 -x /data0/queue https://code.google.com/p/httpsqs/
高並發下的業務提交策略(轉)