-
秒殺系統的重難點
查看全部 -
高可用高并發大型網站架構
查看全部 -
?令牌桶算法:
當請求為rate=1r/s的時候 就會勻速每500毫秒生產1個令牌(按倍數生產,以此類推) 每個請求都會扣除一個令牌,桶中無令牌則返回503
(令牌桶算法可以處理突發流量)
漏桶算法:
把所有的請求進行排隊 當漏桶滿了的時候則均勻溢出 返回503
計數器限流算法:
單位時間計數器計數即可,一般在應用程序中寫的較多
請求會先通過CDN然后才會到自己的服務器(可防止ddos攻擊)
查看全部 -
限流配置(在nginx.conf里面進行配置)
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s // 創建規則
(解讀:我要以某一個key(一個用戶的ip地址) 限制他的請求速率為1個請求每秒 給他申請的空間是10m的內存 名字為mylimit)
?limit_req zone=mylimit burst=1 nodelay; // 應用規則
(解讀:應用的限流規則名稱為mylimit 沒有后面的兩個參數的話就會嚴格按照創建的規則進行執行 burst為允許緩存的速率數量進行排隊 nodelay為不需要等待排隊)
查看全部 -
安裝壓測工具的命令行:
yum -y install httpd-tools
ab -V (查看是否安裝成功)
壓測工具的使用:
ab -n100(次數) -c 10(并發量) http://xxx(接口地址)
查看全部 -
壓測工具的使用
1、安裝工具:yum -y install httpd-tools
2、檢測是否安裝成功:ab -V?
3、檢測接口最大qps:
????ab -n100 -c10 httpd://xxx? ? 模擬并發10人100次請求
查看全部 -
nginx限流-配置
查看全部 -
nginx限流
查看全部 -
nginx限流
查看全部 -
壓力測試工具
查看全部 -
Api.php中的incUserCount方法中,lua腳本比較庫存和剩余量的代碼處,需要轉成數字才準確,不然默認是字符串類型進行比較,我本地測試通不過。
if(field1_val?>?field2_val)?then
if(tonumber(field1_val)?>?tonumber(field2_val))?then
查看全部 -
鏈路流量優化的思路是:分而治之。
查看全部 -
因為lua 是單進程,所以不可能出現2個用戶同時執行lua腳本,從而防止邊界問題。
查看全部 -
千萬秒殺扣庫存設計查看全部
-
nginx限流查看全部
舉報