電商搶購、秒殺活動淺析

電商的秒殺和搶購,對咱們來講,都不是一個陌生的東西。然而,從技術的角度來講,這對於Web系統是一個巨大的考驗。當一個Web系統,在一秒鐘內收到數以萬計甚至更多請求時,系統的優化和穩定相當重要。此次咱們會關注秒殺和搶購的技術實現和優化。web

大型電商搶購,確定有好多牛逼技術,負載均衡,南北鏡像。。。等等,我只是寫一個我遇到的一個搶購業務的處理方法,但願能拋磚引玉!ajax

先上流程圖:緩存

 如今電商網站某個搶購活動,併發怎麼辦?消息隊列安全

AMQP,即Advanced Message Queuing Protocol,高級消息隊列協議,是應用層協議的一個開放標準,爲面向消息的中間件設計。消息中間件主要用於組件之間的解耦,消息的發送者無需知道消息使用者的存在,反之亦然。
AMQP的主要特徵是面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全。
RabbitMQ是一個開源的AMQP實現,服務器端用Erlang語言編寫,支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。有玩RabbitMq的哥們,多多交流!服務器

用戶請求會post到後臺一些信息如(用戶信息,商品信息)到消息隊列中。websocket

消息隊列經過Windows服務去處理解析過來的信息,單線程處理(多線程可能會出現問題,你懂得)!多線程

成功的話,插入到本次活動的成功記錄表裏面;失敗的話,插入到有意購買表(方便業務人員銷售)!併發

怎樣通知用戶?負載均衡

1,ajax異步去請求(隔兩分鐘去請求一次成功記錄,若是不請求庫的話咱們會用Redis緩存)異步

2,長鏈接的方式(websocket,signalr之類的)

 總之想作好搶購之類的業務,路漫漫其修遠兮,但願大神們多多指導!

相關文章
相關標籤/搜索