跳转至

ThumbUP 高并发点赞项目

基于 B 站千亿级点赞系统架构复现,中台化高并发点赞系统,支撑亿级数据规模与万级 QPS 流量


报告索引

序号 报告 内容概述
01 整体架构设计 分层架构(Controller → Service → Manager → Mapper)、数据库表设计、REST API 设计、两套点赞方案对比(Redis 异步方案 vs 二级缓存方案)
02 缓存系统设计 Caffeine + Redis 二级缓存架构、HeavyKeeper 热点 Key 探测算法(指数衰减 + Top-K 堆管理)、缓存穿透/击穿/雪崩防护策略
03 并发控制与数据一致性 Lua 脚本原子性保证、10 秒时间片分桶暂存、定时任务批量落库、补偿任务兜底、字符串常量池锁、最终一致性三层保障
04 技术调研文档 五个核心技术点的实现状态、实现链路、方案选型依据、现存漏洞及完善方向
05 简历技术要点 5 个核心技术要点提炼,每个要点均可深入到函数级别展开

快速参考

项目 值
项目来源 哔哩哔哩技术团队《B站千亿级点赞系统服务架构设计》文章复现
开发时间 2025-10 ~ 2025-11
后端框架 Spring Boot 3.2.2 / Java 21
ORM MyBatis-Plus 3.5.14
缓存 Redis (Jedis) + Caffeine
热点探测 HeavyKeeper 算法
数据库 MySQL
API 文档 Knife4j (OpenAPI3)
核心表 3 张(user / blog / thumb)
REST 端点 6 个(健康检查 + 用户 + 博客 + 点赞)
点赞方案 两套可切换(Redis 异步方案 / 二级缓存方案)

技术栈全景

┌─────────────────────────────────────────────────────────┐
│                    Spring Boot 3.2.2                      │
│                     Java 21 (虚拟线程)                     │
├─────────────────────────────────────────────────────────┤
│  Controller 层(REST API + Knife4j 文档)                  │
│  ├── HealthController    健康检查                         │
│  ├── UserController      用户登录/Session                  │
│  ├── BlogController      博客查询(含点赞状态)              │
│  └── ThumbController     点赞/取消点赞                     │
├─────────────────────────────────────────────────────────┤
│  Service 层(业务逻辑)                                    │
│  ├── ThumbServiceImpl        二级缓存方案(默认)            │
│  └── ThumbServiceRedisImpl   Redis 异步方案                │
├─────────────────────────────────────────────────────────┤
│  Manager 层(缓存管理)                                    │
│  ├── CacheManager        二级缓存协调器                    │
│  ├── HeavyKeeper         热点 Key 探测算法                 │
│  └── TopK / Item         Top-K 接口与数据项                │
├─────────────────────────────────────────────────────────┤
│  Job 层(定时任务)                                        │
│  ├── SyncThumb2DBJob            每 10 秒批量同步            │
│  └── SyncThumb2DBCompensatoryJob  每日补偿兜底              │
├─────────────────────────────────────────────────────────┤
│  数据层                                                    │
│  ├── MySQL(持久化)     Redis(缓存/临时计数)              │
│  └── Caffeine(本地缓存)  Spring Session(分布式会话)      │
└─────────────────────────────────────────────────────────┘