国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Nginx一種限流方案

mayaohua / 2549人閱讀

摘要:背景抽獎接口為了防止高并發(fā)拖累系統(tǒng)通過來限流如最多同時允許個用戶進來抽獎超過個則默認返回未中獎實現(xiàn)代碼進來一個一個請求就加限流一個請求完成就減一中配置

背景

抽獎接口為了防止高并發(fā)拖累系統(tǒng) 通過nginx來限流 如最多同時允許100個用戶進來抽獎 超過100個則默認返回未中獎

實現(xiàn)

lua 代碼

# init_r.lua
local shared_data = ngx.shared.dict
shared_data:set("draw", 0)

# draw_r.lua
local request_uri = ngx.var.request_uri;
if string.sub(request_uri,1,22) == "/activity/lottery/draw" then
local val, err = ngx.shared.dict:incr("draw", 1); #進來一個一個請求就加1
if val > 100 then #限流100
ngx.say("{"success" : true,"data" : {"awardType" : "00" }}")
ngx.log(ngx.ERR,"draw limit val is:"..val)
return ngx.exit(200)
end
return
end

# draw_decr.lua
local request_uri = ngx.var.request_uri;
if string.sub(request_uri,1,22) == "/activity/lottery/draw" then
local newval, err = ngx.shared.dict:incr("draw", -1); #一個請求完成就減一
if newval < 0 then
ngx.shared.dict:set("draw", 0);
end
return
end

nginx中配置

init_by_lua_file /etc/nginx/init_r.lua;


location / {
        default_type application/json;
        rewrite_by_lua_file /etc/nginx/draw_r.lua;
        log_by_lua_file /etc/nginx/draw_decr.lua;
  }

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39391.html

相關文章

  • 幾種限流技術

    摘要:下面是幾種常見的限流技術一限流算法常用的限流算法有令牌桶,漏桶令牌桶令牌桶算法是網(wǎng)絡流量整形和速率限制中最常使用的一種算法。 就秒殺接口來說,當訪問頻率或者并發(fā)請求超過其承受范圍的時候,這時候我們就要考慮限流來保證接口的可用性,以防止非預期的請求對系統(tǒng)壓力過大而引起的系統(tǒng)癱瘓。通常的策略就是拒絕多余的訪問,或者讓多余的訪問排隊等待服務。下面是幾種常見的限流技術 一、限流算法常用的限流算...

    Warren 評論0 收藏0
  • Nginx源碼研究】nginx限流模塊詳解

    摘要:限流算法最簡單粗暴的限流算法就是計數(shù)器法了,而比較常用的有漏桶算法和令牌桶算法計數(shù)器計數(shù)器法是限流算法里最簡單也是最容易實現(xiàn)的一種算法。 運營研發(fā)團隊 李樂 高并發(fā)系統(tǒng)有三把利器:緩存、降級和限流; 限流的目的是通過對并發(fā)訪問/請求進行限速來保護系統(tǒng),一旦達到限制速率則可以拒絕服務(定向到錯誤頁)、排隊等待(秒殺)、降級(返回兜底數(shù)據(jù)或默認數(shù)據(jù)); 高并發(fā)系統(tǒng)常見的限流有:限制總并發(fā)...

    voyagelab 評論0 收藏0
  • 使用Guava RateLimiter限流以及源碼解析

    摘要:令牌桶算法對于很多應用場景來說,除了要求能夠限制數(shù)據(jù)的平均傳輸速率外,還要求允許某種程度的突發(fā)傳輸。使用以及源碼解析開源工具包提供了限流工具類,該類基于令牌桶算法實現(xiàn)流量限制,使用十分方便,而且十分高效。 前言 在開發(fā)高并發(fā)系統(tǒng)時有三把利器用來保護系統(tǒng):緩存、降級和限流 緩存 緩存的目的是提升系統(tǒng)訪問速度和增大系統(tǒng)處理容量 降級 降級是當服務出現(xiàn)問題或者影響到核心流程時,需要暫時...

    simpleapples 評論0 收藏0
  • 大型網(wǎng)站限流算法的實現(xiàn)和改造

    摘要:涉及變量接口時間單位允許訪問多少次遞增間隔時間遞增步長當前可訪問次數(shù)的訪問時間當前時間參照漏桶算法需要注意的點條件一線程一存在不能訪問添加,設置為線程二過去時間所有的條件二參考計算器算法條件二實現(xiàn)。算法升級參考漏桶算法升級實現(xiàn)。 最近寫了一個限流的插件,所以避免不了的接觸到了一些限流算法。本篇文章就來分析一下這幾種常見的限流算法 分析之前 依我個人的理解來說限流的話應該靈活到可以針對...

    DC_er 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<