高併發常常會發生在有大活躍用戶量,用戶高彙集的業務場景中,如:秒殺活動,定時領取紅包等。
爲了讓業務能夠流暢的運行而且給用戶一個好的交互體驗,咱們須要根據業務場景預估達到的併發量等因素,來設計適合本身業務場景的高併發處理方案。
業務從發展的初期到逐漸成熟,服務器架構也是從相對單一到集羣,再到分佈式服務。
一個能夠支持高併發的服務少不了好的服務器架構,須要有均衡負載,數據庫須要主從集羣,nosql緩存須要主從集羣,靜態文件須要上傳cdn,
這些都是能讓業務程序流暢運行的強大後盾。
大體須要用到的服務器架構以下:
服務器
均衡負載(如nginx,阿里雲SLB)
資源監控
分佈式
數據庫
主從分離集羣
DB表優化,索引優化
分佈式
nosql
redis
主從分離,集羣
mongodb
主從分離,集羣
memcached
主從分離,集羣
cdn
html
css
js
image
高併發相關的業務,須要進行併發的測試,經過大量的數據分析評估出整個架構能夠支撐的併發量。
測試高併發能夠使用第三方服務器或者本身測試服務器,利用測試工具進行併發請求測試,分析測試數據獲得能夠支撐併發數量的評估,這個能夠做爲一個預警參考,俗話說知己自彼百戰不殆。
第三方服務:
阿里雲性能測試
併發測試工具:
Apache JMeter
Visual Studio性能負載測試
Microsoft Web Application Stress Tool