婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Golang模擬令牌桶進(jìn)行對(duì)訪問(wèn)的限流方式

Golang模擬令牌桶進(jìn)行對(duì)訪問(wèn)的限流方式

熱門(mén)標(biāo)簽:涿州代理外呼系統(tǒng) excel地圖標(biāo)注分布數(shù)據(jù) 外呼系統(tǒng)顯本地手機(jī)號(hào) 百度地圖標(biāo)注后傳給手機(jī) 壽光微信地圖標(biāo)注 外呼系統(tǒng)用什么卡 阿克蘇地圖標(biāo)注 評(píng)價(jià)高的400電話辦理 電話機(jī)器人軟件免費(fèi)

利用channel進(jìn)行模擬令牌桶對(duì)訪問(wèn)進(jìn)行限流

func FW(max int,duration time.Duration){
//定義一個(gè)channel ,進(jìn)行初始化
	contain := make(chan bool , max)
	for i := 0 ; i  max ; i ++{
		contain - true//寫(xiě)入channel
	}
	go func() {//開(kāi)啟一個(gè)線程
		for {
			contain - true
			time.Sleep(duration)
		}
	}()
	for - contain {//如果上一個(gè)線程寫(xiě)入一個(gè)true,就會(huì)運(yùn)行這個(gè)代碼塊
		fmt.Println("helllo world")
	}
}

補(bǔ)充:golang簡(jiǎn)易令牌桶算法實(shí)現(xiàn)

基本思路:

定義一個(gè)chan,chan大小為需要限制的qps大小,go一個(gè)協(xié)程啟動(dòng)tick,每1000/qps時(shí)間在tick中寫(xiě)入數(shù)值,啟動(dòng)另一個(gè)協(xié)程,讀取chan中的值,如果讀取到chan中有值,則向下層接口發(fā)送請(qǐng)求。

代碼如下:

package main
import (
    "fmt"
    "time"
    "httpclient"
)
var LEN int = 10
func tickStoreCh(arrlen int, ch chan int) {
    len := 1000/arrlen
    fmt.Println(len)
    tickTime := time.NewTicker(time.Duration(len)*time.Millisecond)
    var i int
    for {
        fmt.Println(len)
        i++
        -tickTime.C
        ch- i
    }
}
func OrganReq(org string, qps int) {
    ch := make(chan int, qps)
    go tickStoreCh(qps, ch)
    time.Sleep(1000*time.Millisecond)
    for {
        //收客戶請(qǐng)求,發(fā)送http請(qǐng)求給RE
        client := httpclient.NewHttpClient(time.Duration(1000)*time.Millisecond, time.Duration(2000)*time.Millisecond)
        header := make(map[string]string)
        header["Content-Type"] = "application/json;charset=utf-8"
        code, err := client.ResponseCode("http://127.0.0.1:19988", header, "llltest")
        value := - ch
        fmt.Println(code, value, err, "lenchan:", len(ch))
        //time.Sleep(time.Second)
    }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang簡(jiǎn)易令牌桶算法實(shí)現(xiàn)代碼
  • 詳解Golang實(shí)現(xiàn)請(qǐng)求限流的幾種辦法
  • golang高并發(fā)限流操作 ping / telnet
  • golang接口IP限流,IP黑名單,IP白名單的實(shí)例
  • Golang 限流器的使用和實(shí)現(xiàn)示例
  • Golang實(shí)現(xiàn)請(qǐng)求限流的幾種辦法(小結(jié))

標(biāo)簽:雞西 蘭州 梅河口 欽州 銅川 汕頭 吐魯番 重慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Golang模擬令牌桶進(jìn)行對(duì)訪問(wèn)的限流方式》,本文關(guān)鍵詞  Golang,模擬,令牌桶,進(jìn)行,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Golang模擬令牌桶進(jìn)行對(duì)訪問(wèn)的限流方式》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Golang模擬令牌桶進(jìn)行對(duì)訪問(wèn)的限流方式的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 兴隆县| 信宜市| 鄂州市| 昌江| 贡觉县| 仲巴县| 新和县| 江川县| 洱源县| 白玉县| 大冶市| 仙居县| 桃江县| 石门县| 阿坝| 常熟市| 和顺县| 宽甸| 中西区| 政和县| 太原市| 文昌市| 贵港市| 会东县| 锡林浩特市| 长沙市| 昌吉市| 原阳县| 太白县| 饶平县| 江口县| 商城县| 赣榆县| 罗甸县| 光山县| 汝州市| 应用必备| 精河县| 汤阴县| 南部县| 湟中县|