最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang簡易令牌桶算法實現(xiàn)代碼

 更新時間:2021年04月16日 10:19:31   作者:寧靜致遠_淡泊明志  
這篇文章主要介紹了golang簡易令牌桶算法實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

代碼如下:

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

到此這篇關(guān)于golang簡易令牌桶算法實現(xiàn)代碼的文章就介紹到這了,更多相關(guān)golang 令牌桶算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang goquery selector選擇器使用示例大全

    golang goquery selector選擇器使用示例大全

    這篇文章主要為大家介紹了golang goquery selector選擇器使用示例大全,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • golang 連接mongoDB的方法示例

    golang 連接mongoDB的方法示例

    這篇文章主要介紹了golang 連接mongoDB的方法示例,詳細的介紹了golang的基礎(chǔ)知識和連接mongoDB的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 利用Go語言實現(xiàn)流量回放工具的示例代碼

    利用Go語言實現(xiàn)流量回放工具的示例代碼

    今天給大家推薦一款使用Go語言編寫的流量回放工具?--?goreplay;工作中你一定遇到過需要在服務(wù)器上抓包的場景,有了這個工具就可以助你一臂之力,廢話不多,我們接下來來看一看這個工具
    2022-09-09
  • Go語言實現(xiàn)關(guān)閉http請求的方式總結(jié)

    Go語言實現(xiàn)關(guān)閉http請求的方式總結(jié)

    面試的時候問到如何關(guān)閉http請求,一般人脫口而出的是關(guān)閉response.body,這是錯誤的。本文為大家整理了三個正確關(guān)閉http請求的方法,希望對大家有所幫助
    2023-02-02
  • Go使用select切換協(xié)程入門詳解

    Go使用select切換協(xié)程入門詳解

    這篇文章主要為大家介紹了Go使用select切換協(xié)程入門詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Go語言中的匿名結(jié)構(gòu)體用法實例

    Go語言中的匿名結(jié)構(gòu)體用法實例

    這篇文章主要介紹了Go語言中的匿名結(jié)構(gòu)體用法,實例分析了匿名結(jié)構(gòu)體的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • 我為什么喜歡Go語言(簡潔的Go語言)

    我為什么喜歡Go語言(簡潔的Go語言)

    從2000年至今,也寫了11年代碼了,期間用過VB、Delphi、C#、C++、Ruby、Python,一直在尋找一門符合自己心意和理念的語言。我很在意寫代碼時的手感和執(zhí)行的效率,所以在Go出現(xiàn)之前一直沒有找到
    2014-10-10
  • Golang 斷言與閉包使用解析

    Golang 斷言與閉包使用解析

    這篇文章主要介紹了Golang 斷言與閉包使用解析,Go中的斷言用于判斷變量的類型,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-07-07
  • go語言制作的zip壓縮程序

    go語言制作的zip壓縮程序

    這篇文章主要介紹了go語言制作的zip壓縮程序,其主體思路是首先創(chuàng)建一個讀寫緩沖,然后用壓縮器包裝該緩沖,用Walk方法來將所有目錄下的文件寫入zip,有需要的小伙伴參考下。
    2015-03-03
  • Golang中context包使用場景和示例詳解

    Golang中context包使用場景和示例詳解

    這篇文章結(jié)合示例代碼介紹了context包的幾種使用場景,文中有詳細的代碼示例,對學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-05-05

最新評論

民乐县| 东宁县| 浠水县| 晴隆县| 梧州市| 凌源市| 浦城县| 鹿邑县| 来凤县| 鄢陵县| 湘阴县| 辉县市| 益阳市| 武清区| 盐池县| 西安市| 昭觉县| 中牟县| 奈曼旗| 元朗区| 宁乡县| 新乐市| 县级市| 凤翔县| 吕梁市| 历史| 富顺县| 玉山县| 南投市| 南城县| 万全县| 孝昌县| 岐山县| 弥渡县| 平山县| 清水河县| 庆城县| 杂多县| 翁牛特旗| 永和县| 明水县|