图文详解:如何设计一个亿级用户排行榜?

一句话概括

码哥按实时性、准确性、抗压力(峰值 100 万 QPS、P99 <200ms)、灵活性拆需求,给出数据接入、计算、存储、展示四层架构,并用分层合并把跨分片 TOP100 查询从 530ms 优化到 80ms。

实践内容

需求拆解

维度要求
实时性秒级更新
准确性精确排名
抗压力峰值 100 万 QPS、P99 <200ms
灵活性支持多种排行维度

四层架构

数据接入层:

  • Kafka 多活
  • MirrorMaker
  • DLQ(死信队列)

计算层:

  • Lua 实时计算
  • Spark 批处理
  • Flink 混合(70% + 30%)

存储层:

  • Redis Cluster 100 分片
  • Caffeine 三级缓存
  • ClickHouse 冷热分离

展示层:

  • CDN
  • API 网关
  • K8s HPA

性能优化

分层合并把跨分片 TOP100 查询从 530ms 优化到 80ms。

摘录

码哥按实时性、准确性、抗压力(峰值 100 万 QPS、P99 <200ms)、灵活性拆需求,给出数据接入(Kafka 多活 + MirrorMaker + DLQ)、计算(Lua 实时 / Spark 批 / Flink 混合 70%+30%)、存储(Redis Cluster 100 分片 + Caffeine 三级缓存 + ClickHouse 冷热分离)、展示(CDN + API 网关 + K8s HPA)四层架构。

用分层合并把跨分片 TOP100 查询从 530ms 优化到 80ms。

涉及实体

  • []

涉及主题

  • []

我的评注

虽然这篇文章不是 AI 相关的,但其系统设计思想对 AI Agent 系统同样适用。分层架构、缓存策略、性能优化等方法都是通用的工程实践。