18禁超污无遮挡无码网址极速丨亚洲精品久久国产片400部丨黑人巨茎美女高潮视频丨18禁裸乳啪啪无遮裆网站丨免费1级做爰片1000部视频

×
新網 > 云服務器 > 正文

服務器架構與高并發性能測試實戰方案(三)

  • 作者:新網
  • 來源:新網
  • 瀏覽:100
  • 2018-05-10 17:57:09

上面例子多是針對用戶存儲緩存,如果是公用的緩存數據需要注意一些問題,如:公用的緩存數據需要考慮并發下的可能會導致大量命中DB查詢,可以使用管理后臺更新緩存,或者DB查詢的鎖住操作。

 其他業務:

002UASMrzy7605pjKJv15&690.jpg

<div
上面例子多是針對用戶存儲緩存,如果是公用的緩存數據需要注意一些問題,如:公用的緩存數據需要考慮并發下的可能會導致大量命中DB查詢,可以使用管理后臺更新緩存,或者DB查詢的鎖住操作。
 
以上例子是一個相對簡單的高并發架構,并發量不是很高的情況可以很好的支撐,但是隨著業務的壯大,用戶并發量增加,我們的架構也會進行不斷的優化和演變,比如對業務進行服務化,每個服務有自己的并發架構,自己的均衡服務器,分布式數據庫,NoSQL主從集群,如:用戶服務、訂單服務。
 
2)消息隊列
 
秒殺、秒搶等活動業務,用戶在瞬間涌入產生高并發請求。
 
場景:定時領取紅包等。
 
說明:
 
場景中的定時領取是一個高并發的業務,像秒殺活動用戶會在到點的時間涌入,DB瞬間就接受到一記暴擊,hold不住就會宕機,然后影響整個業務;
 
像這種不是只有查詢的操作并且會有高并發的插入或者更新數據的業務,前面提到的通用方案就無法支撐,并發的時候都是直接命中DB;
 
設計這塊業務的時候就會使用消息隊列的,可以將參與用戶的信息添加到消息隊列中,然后再寫個多線程程序去消耗隊列,給隊列中的用戶發放紅包;
 
方案如:
 
定時領取紅包;
 
一般習慣使用 redis的 list;
 
當用戶參與活動,將用戶參與信息push到隊列中;
 
然后寫個多線程程序去pop數據,進行發放紅包的業務;
 
這樣可以支持高并發下的用戶可以正常的參與活動,并且避免數據庫服務器宕機的危險。
 
附加:通過消息隊列可以做很多的服務。
 
如:定時短信發送服務,使用sset(sorted set),發送時間戳作為排序依據,短信數據隊列根據時間升序,然后寫個程序定時循環去讀取sset隊列中的第一條,當前時間是否超過發送時間,如果超過就進行短信發送。
 
以上就是我們的今日分享,希望對大家有所幫助。
 

免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。

免費咨詢獲取折扣

Loading