需要面试准备
你正在设计一个内部 RPC 网关的准入控制层。每个上游调用方对应一个 令牌桶,容量 bucket_capacity,以 rate_per_sec 速率连续补充。桶初始为满。每条请求是一个事件 {type: 'request', ts, cost}——表示在时刻 ts 调用方想花费 cost 个 token。教科书做法("tokens < cost 就拒")在生产流量里太严:正常客户端经常发出短时突发,瞬时超过稳态、几毫秒就会回落。所以准入层允许把 token 不够的请求 入队,FIFO 队深 max_queue_size,等桶补回再放出去;队满则拒。