高并发下的流量控制

背景

目前在做一个消息中台,提供给业务方各种消息通道能力。我们在系统设计过程中,除了有对业务方在使用时做 Quota 限制;也有对请求做流量控制(几w+ QPS),防止并发流量上来时打垮服务。下面是个人在调研流量控制方案的一些梳理和总结。

在 Go 中实现 Monkey Patch

背景

在进行单元测试的时候,通过 testify框架 对测试函数的数据和所依赖的方法做 mock,但是单测出现 panic。 根据错误提示,被测试函数调用了 time.Now(), 因为会对比这个函数返回值, 所以本次单测没有跑通过。下面介绍通过 monkey patch 来解决这个问题。