第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

簡單的油門控制在行駛

簡單的油門控制在行駛

Go
桃花長相依 2022-08-24 15:44:03
如何創(chuàng)建簡單的限制控件以停止 API 接收多個請求。還是有效地獲得DDOS?因為有時您可能有一個正向 API 將所有連接傳遞到您的服務(wù)。如前所述,還有其他一些解決方案可以將節(jié)流構(gòu)建到實際連接中,但是確實使實際上的簡單解決方案變得過于復(fù)雜,查看推薦的解決方案,它們幾乎通過將id添加到地圖來執(zhí)行下面建議的功能。對于那些仍在學(xué)習(xí)的人來說,這不是一個糟糕的選擇,但是由于go是如此之好,你可以嘗試簡單,然后在你開始更好地理解機制時改進成更好的解決方案。雖然這被標(biāo)記為推廣某些書籍或其他東西,但這只是我試圖幫助他人。如果這是壞事,那么Ill就保持不好。:D
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

下面是一些簡單的限制控制代碼,將其用作具有所述服務(wù)的唯一標(biāo)識符(在本例中為 IP)和要等待的時間的 IF 調(diào)用。正如您通過代碼所看到的,您可以將秒更改為分鐘或毫秒。你最好使用像cloudflare這樣的服務(wù),但作為最后一個選項,把它放在你的API中,并在處理程序代碼周圍放置一個IF語句,你可以限制對連接的控制。這是為了保持簡單,我相信還有其他優(yōu)雅的解決方案出來,我的愚蠢嘗試可能會被嘲笑,但我相信有人會從中吸取教訓(xùn),如果它們有意義,改進建議也會包括在內(nèi)。


/******************************************************************************

 *      _   _               _   _   _               _ _

 *     | | | |             | | | | | |        /\   | | |

 *     | |_| |__  _ __ ___ | |_| |_| | ___   /  \  | | | _____      __

 *     | __| '_ \| '__/ _ \| __| __| |/ _ \ / /\ \ | | |/ _ \ \ /\ / /

 *     | |_| | | | | | (_) | |_| |_| |  __// ____ \| | | (_) \ V  V /

 *      \__|_| |_|_|  \___/ \__|\__|_|\___/_/    \_\_|_|\___/ \_/\_/

 * ----------------------------------------------------------------------------

 * This function will temp store the value in a map and then remove it, it will

 * return true or false if the item is in the map, Now sets delay on second response

 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

var throttle = make(map[string]bool)

func throttleAllow(ip string, timeout int) (retVal bool) {

    if throttle[ip] == true {

        fmt.Println("WARM","-=Throttle=-To frequent calls from:",ip)

        time.Sleep(time.Duration(timeout)*time.Second) //Random next cycle.

        retVal = true  // false will result is receiging to frequent message

    } else {

        throttle[ip] = true

        go func(){

            time.Sleep(time.Duration(timeout)*time.Second) //Random next cycle.

            delete(throttle, ip)

        }()

        retVal = true

    }

    return

}


查看完整回答
反對 回復(fù) 2022-08-24
  • 1 回答
  • 0 關(guān)注
  • 88 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號