Tollbooth 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Tollbooth 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
开发语言: Google Go
操作系统: 跨平台
收录时间: 2015-05-23
提 交 者: 红薯

Tollbooth 是一个用 Go 语言编写的用来限制 HTTP 访问速度的中间件,可用来限制每个 HTTP 请求的传输速率。例如你可以不限制 / 的访问速率,但是可以针对 /login 限制每个 IP 每秒最多 POST 多少个请求。

Go 程序中使用的方法:

package main

import (
    "github.com/didip/tollbooth"
    "net/http"
    "time"
)

func HelloHandler(w http.ResponseWriter, req *http.Request) {
    w.Write([]byte("Hello, World!"))
}

func main() {
    // You can create a generic limiter for all your handlers
    // or one for each handler. Your choice.
    // This limiter basically says: allow at most 1 request per 1 second.
    limiter := tollbooth.NewLimiter(1, time.Second)

    // This is an example on how to limit only GET and POST requests.
    limiter.Methods = []string{"GET", "POST"}

    // You can also limit by specific request headers, containing certain values.
    // Typically, you prefetched these values from the database.
    limiter.Headers = make(map[string][]string)
    limiter.Headers["X-Access-Token"] = []string{"abc123", "xyz098"}

    // And finally, you can limit access based on basic auth usernames.
    // Typically, you prefetched these values from the database as well.
    limiter.BasicAuthUsers = []string{"bob", "joe", "didip"}

    // Example on how to wrap your request handler.
    http.Handle("/", tollbooth.LimitFuncHandler(limiter, HelloHandler))
    http.ListenAndServe(":12345", nil)
展开阅读全文

代码

Tollbooth 的相关资讯

还没有任何资讯

Tollbooth 的相关博客

分享常用的GoLang包工具

包名 链接地址 备注 Machinery异步队列 https://github.com/RichardKnop/machinery Mqtt通信 github.com/eclipse/paho.mqtt.g...

Golang实现请求限流的几种办法

简单的并发控制 利用 channel 的缓冲设定,我们就可以来实现并发的限制。我们只要在执行并发的同时,往一个带有缓冲的 channe...

Go 语言优秀资源整理,为项目落地加速🏃

最后更新于2019.11.22 Go 语言优秀资源整理,为项目落地加速🏃 在 GitHub 上稳定更新,觉得不错请点个 Star ❤️ 如转载分享...

Tollbooth 的相关问答

还没有任何问答,马上提问

评论 (3)

加载中
fhhxc #Tollbooth#
2015/05/23 10:24
回复
举报
Nginx提供limit_req/limit_rate相关指令. #Tollbooth#
2015/05/23 21:42
回复
举报
支持了! #Tollbooth#
2015/05/23 21:55
回复
举报
更多评论
3 评论
98 收藏
分享
返回顶部
顶部