Java面试题更新 2026-08-05

请解释 Sentinel 集群限流的具体实现机制,包括其内部组件是如何协调工作的?

后端开发系统设计技术原理方案权衡Netty

考察说明

考察对 Sentinel 集群限流架构和通信机制的理解。

回答思路

  1. 【回答框架 1】集群限流是为了解决单机限流不准确的问题,核心思路是集中统计全局流量,再按令牌或配额分配给各节点。Sentinel 采用独立的 Token Server 负责全局统计和决策。
  2. 【回答框架 2】在集群限流中,每个应用节点作为 Token Client 向 Token Server 发送请求,申请令牌或上报流量。Token Server 根据全局规则计算是否允许通过,并将结果返回给客户端。通信协议支持 Netty 和 HTTP。
  3. 【回答框架 3】Token Server 可以嵌入在某个应用节点中,也可以独立部署。嵌入模式部署简单,但会受到该节点故障的影响;独立模式更可靠,但需要额外运维。Token Server 之间不进行数据同步,通常使用一致性哈希或配置指定。
  4. 【回答框架 4】客户端需要配置集群限流规则和服务器地址,并在本地缓存结果以降低通信开销。当 Token Server 不可用时,客户端可以切换为降级策略,如退化为本地限流或直接放行,具体取决于配置。
  5. 【关键点 1】集群限流通过集中式 Token Server 实现全局流量统计和决策。
  6. 【关键点 2】客户端与服务器之间采用 Netty 或 HTTP 通信,支持异步和同步模式。
  7. 【关键点 3】Token Server 支持嵌入式和独立部署,各有利弊。
  8. 【关键点 4】通信失败时客户端可配置降级策略,如本地限流或放行。
  9. 【易错点 1】不要认为集群限流可以完全替代单机限流,两者应结合使用以应对突发流量。
  10. 【易错点 2】Token Server 本身的性能可能成为瓶颈,需要关注其容量规划和监控。
  11. 【易错点 3】网络延迟和通信开销可能影响限流精度,需权衡分配周期和实时性。