当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
55 Star 265 Fork 97

fagongzi / gateway
暂停

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
filter_rate_limiting.go 760 Bytes
一键复制 编辑 原始数据 按行查看 历史
张旭 提交于 2018-07-05 19:33 . dev: add metrics
package proxy
import (
"net/http"
"github.com/fagongzi/gateway/pkg/filter"
"golang.org/x/net/context"
)
// RateLimitingFilter RateLimitingFilter
type RateLimitingFilter struct {
filter.BaseFilter
}
func newRateLimitingFilter() filter.Filter {
return &RateLimitingFilter{}
}
// Init init filter
func (f *RateLimitingFilter) Init(cfg string) error {
return nil
}
// Name return name of this filter
func (f *RateLimitingFilter) Name() string {
return FilterRateLimiting
}
// Pre execute before proxy
func (f *RateLimitingFilter) Pre(c filter.Context) (statusCode int, err error) {
err = c.(*proxyContext).result.dest.limiter.Wait(context.Background())
if err != nil {
return http.StatusInternalServerError, err
}
return f.BaseFilter.Pre(c)
}
Go
1
https://gitee.com/fagongzi/gateway.git
git@gitee.com:fagongzi/gateway.git
fagongzi
gateway
gateway
v2.5.1

搜索帮助