## 关于令牌桶( token bucket )
令牌桶限流的原理是系统以一个恒定的速度往固定容量的桶里放入令牌,当有请求进来时,需要先从桶里获取并消耗一个令牌,当桶里没有令牌可取时,则拒绝服务或让请求等待。
如图:

每隔 1/r 秒向 bucket 中填充一个 token ;
bucket 最多只能存放 b 个 token ,如果填充 token 时
golang 单元测试中常用以下 4 个库方便测试代码的编写:
[gostub](https://github.com/prashantv/gostub) 主要用来给变量、函数、过程打桩 但是给函数打桩时,需要做侵入式修改
[convey](http://goconvey.co) 主要用途是用来组织测试用例的,提供了很多断言,兼容`go test`,有 web ui ,保存代码可自动跑测试
[gomock](https://github.com/golang/mock) 主要用来给接口打桩的。 mockgen 可以生成对应的接口测试文件。
[monkey](https:
......