抽奖系统感觉类似于红包系统。

  • 最基础,抽奖服务 + DB + 通知服务。
  • 进一步,Nginx 负载均衡,平衡服务器压力。
  • 进一步,Nginx 对恶意 IP 进行限制、网关进行限流。
  • 进一步,拦截无效请求。
    • 点击抢购后,前端变灰,无法抢购。
    • 请求数目远大于被抢购数目,直接拒绝。
  • 进一步,redis 缓解 DB 压力。
  • 进一步,通过压测获得 Tomcat 服务器可以支持的线程数压力。
  • 进一步,中奖状态 MQ 异步回复。

其他补充:

URL 动态加密、限流、预热、MQ 削峰、重复抽奖。

如何设计百万人抽奖系统-一条 coding- 2021