消息队列分布式限流方案
限流分类
1、单机限流
限制每一台broker的流量,如下图所示:
2、全局限流
限制所有broker的流量和,这种方案往往需要一个第三方的平台来统计目前所有Broker的总流量,如下图所示:
对什么限流
主要对流量、连接数、请求数三类资源进行限流。
流量限制指对生产、消费的流量限制。
连接数限制指对客户端连接到服务端的 TCP 连接数量进行限制。因为 TCP 连接的建立和关闭需要消耗 CPU、内存等资源,限制是为了保护服务端不会因为连接数太多,耗尽资源,导致服务不可用,主要从一下三个方面:
服务端单机可承载的最大连接数限制。
客户端单个 IP 可建立的连接数。
单个集群可建立的总链接数。
请求数限制指对单个接口的访问频次进行限制,来保护集群自身的可用性。