一個處理高並發請求的演算法,處理並發請求演算法

來源:互聯網
上載者:User

一個處理高並發請求的演算法,處理並發請求演算法

  這個演算法以前在網路遊戲開發時服務端常用,需要有一些前提條件。假設你的並發請求每秒鐘少於一萬(當然這還取決於你的伺服器效能,如果你的伺服器效能(含資料庫)每秒可以處理的多,那麼這個值就會高),並且假設高峰期請求不超過幾萬,也就是這幾萬之後再也不會有那麼多請求了。這個時候你可以用記憶體隊列,而不是用訊息佇列中介軟體(當年開發遊戲時都沒聽說有訊息佇列中介軟體)。演算法很簡單,就是請求來的時候先排入佇列,然後在同一個方法裡使用while迴圈執行操作,然後再返回給用戶端。

       假如這是一個理財平台或中型電子商務網站的購買操作,對應的方法:

   java先new 出一個ConcurrentLinkedQueue隊列,作為類成員。

       購買(購買參數){

              (1)隊列.add(購買參數)          

              (2)馬上計算

              While(隊列.size>0){

                     取出隊列元素進行計算                    

              }

              (3)去資料庫根據購買參數查詢結果

              (4)返回結果

       }

       這樣做的好處是可以將並發的請求暫時儲存,並計算,客戶可以第一時間得到計算結果,把非同步處理變成了即時處理。網路遊戲就是這麼做的,所以有時使用者多時會卡,卡就是隊列沒有計算完。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.