一直再說高并發,多少QPS才算高并發?業務系統服務,單機,集群分別是多少呢?
高并發的四個角度
只說并發不提高可用就是耍流氓。可以從四個角度討論這個問題。
首先是無狀態前端機器不足以承載請求流量,需要進行水平擴展,一般QPS是千級。 然后是關系型數據庫無法承載讀取或寫入峰值,需要數據庫橫向擴展或引入nosql,一般是千到萬級。 之后是單機nosql無法承載,需要nosql橫向擴展,一般是十萬到百萬QPS。 最后是難以單純橫向擴展nosql,比如微博就引入多級緩存架構,這種架構一般可以應對百萬到千萬對nosql的訪問QPS。 當然面向用戶的接口請求一般到不了這個量級,QPS遞增大多是由于讀放大造成的壓力,單也屬于高并發架構考慮的范疇。
PV和QPS
比如微博每天1億多pv的系統一般也就1500QPS,5000QPS峰值。
比如有人說:
- 2C4G機器單機一般1000QPS。
- 8C8G機器單機可承受7000QPS。
寫在后面
具體多少QPS跟業務強相關,只讀接口讀緩存,將壓力給到緩存單機3000+沒問題,寫請求1000+也正常,也復雜些可能也就幾百+QPS。
所以QPS和業務場景和設計相關性很大,比如可以通過瀏覽器本地緩存,用緩存做熱點數據查詢,寫事務MQ異步處理等方式提升QPS。
本文轉載于開源中國,作者:春哥大魔王的博客
原文:https://my.oschina.net/u/1000241/blog/3065185