设计一个限流组件,要求qps达到百万级别,精确度99.9%
限流器做成一个中间键还是在后台服务中写?
架构若是微服务架构,在设计中包含了一个API网关来执行认证、IP白名单等,你可以在API网关上添加一个速率限制器。
如何创建速率限制规则?这些规则储存在哪里?
写在配置文件中,限流服务可以读取配置生成限流规则并初始化。后续再分配到各个网关服务的限流配合。
百万级qps怎么承载?
redis可以承载百万qps =>redis模型结构?

做一个分布式限流服务,限流规则写在配置文件中,并缓存。请求过来,去访问redis,查看是否被限流。

redis本身是可以支持百万qps的。进一步为了缓解redis压力,每个限流服务节点,都会缓存可以使用的qps大小,后续定时去更新缓存的qps大小。