Código de implementación del algoritmo de cubo de token simple de Golang

 

Este artículo presenta principalmente el código de implementación del algoritmo simple token bucket de golang. El artículo presenta el código de muestra con gran detalle. Tiene un cierto valor de aprendizaje de referencia para el estudio o el trabajo de todos. Amigos que lo necesiten, sigan al editor para aprender juntos.

Idea básica: defina un chan, el tamaño del chan es el tamaño de qps que debe limitarse, vaya a una rutina para comenzar a marcar, escriba el valor en el tick cada 1000/qps, inicie otra rutina, lea el valor en el chan , si se lee Si hay un valor en chan, envíe una solicitud a la interfaz inferior.

el código se muestra a continuación:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

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)

    }

}

Este es el final de este artículo sobre el código de implementación del algoritmo simple token bucket de golang, espero que te pueda ayudar.

Reenviado de: Micro lectura    https://www.weidianyuedu.com

Supongo que te gusta

Origin blog.csdn.net/weixin_45707610/article/details/131830456
Recomendado
Clasificación