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

主頁 > 知識庫 > Golang模擬令牌桶進行對訪問的限流方式

Golang模擬令牌桶進行對訪問的限流方式

熱門標簽:涿州代理外呼系統 excel地圖標注分布數據 外呼系統顯本地手機號 百度地圖標注后傳給手機 壽光微信地圖標注 外呼系統用什么卡 阿克蘇地圖標注 評價高的400電話辦理 電話機器人軟件免費

利用channel進行模擬令牌桶對訪問進行限流

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

補充:golang簡易令牌桶算法實現

基本思路:

定義一個chan,chan大小為需要限制的qps大小,go一個協程啟動tick,每1000/qps時間在tick中寫入數值,啟動另一個協程,讀取chan中的值,如果讀取到chan中有值,則向下層接口發送請求。

代碼如下:

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 {
        //收客戶請求,發送http請求給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)
    }
}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

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

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

巨人網絡通訊聲明:本文標題《Golang模擬令牌桶進行對訪問的限流方式》,本文關鍵詞  Golang,模擬,令牌桶,進行,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Golang模擬令牌桶進行對訪問的限流方式》相關的同類信息!
  • 本頁收集關于Golang模擬令牌桶進行對訪問的限流方式的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 德钦县| 云林县| 白城市| 彭泽县| 久治县| 囊谦县| 潍坊市| 临湘市| 如东县| 宾川县| 麻江县| 伊川县| 建宁县| 晋州市| 鄂尔多斯市| 广安市| 日土县| 长顺县| 永登县| 思茅市| 胶州市| 吐鲁番市| 虹口区| 象州县| 星子县| 临颍县| 普格县| 灵台县| 汕尾市| 涪陵区| 阿克陶县| 虹口区| 张家港市| 额尔古纳市| 滦平县| 东阳市| 时尚| 旬阳县| 酉阳| 枣阳市| 磐安县|