这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
关键技术决策
1. 消息队列:RabbitMQ
选 RabbitMQ 的原因:
- 延迟队列:支持定时发送(如免打扰后的补发)。
- 消息确认:消费失败可重试,不丢消息。
- 优先级队列:私信 / 系统公告走高优先级。
2. 缓存:Redis
Redis 在通知系统中承担多个职责:
- 用户偏好缓存:发送前毫秒级读取。
- 未读计数:高频查询。
- 推送限流:时间窗口计数。
- 分布式锁:防并发重复推送。
3. 数据库:MySQL 分表
站内信表按用户 ID 分 16 张表:
- 按
user_id取模分表,单表数据可控。 - 用户查询只落到一张表,避免全表膨胀。
- 分表键选择:必须按查询条件(user_id)。
决策的原则
每个技术选型都要回答「为什么」:
- 队列:要延迟、确认、优先级 → RabbitMQ。
- 缓存:要毫秒级、多职责 → Redis。
- 分表:要控制单表规模 → user_id 分表。
一句话
关键技术决策 = 需求驱动选型:**RabbitMQ 解决可靠异步,Redis 解决高频状态,MySQL 分表解决规模增长。**每个决策都能追溯到具体问题。
发现内容有问题?
告诉我们哪里需要改进。
