美文网首页
活动系统设计概述

活动系统设计概述

作者: 哓晓的故事 | 来源:发表于2017-09-27 00:12 被阅读0次

模型

  • 活动 -> 场次 -> 奖品 -> 商品
  • 用户奖品记录

存储 5%的请求

  • MySQL 存储配置信息,更新库存数量,记录用户行为
    • 结合 rocket mq,批量下载用户行为,进行本地区分并统计好行为对应的库存消耗(一个行为对应可能是多个用户)
    • update的不是-1的方式,而是-n的方式,减少不行update带来的block风险,虽然现有集群能支撑现有的日活量,但是成原则上不允许-1的方式
    • insert 也不建议一条条insert,虽然这种在原则上是可以的,但是batchInsert是更好的选择

缓存 90%的请求

  • Tair 作为分布式缓存,承载用户的并发请求、用户计数器、库存计数器
    • 使用 setCount/incr/desr 进行库存/用户行为计数(只支持 int)
    • 使用 动态活动时间动态计算expire time对活动信息进行缓存
    • expire time 是second单位,只支持 int
  • Guava Cache 作为本地缓存,二级缓存

队列 解耦用户记录

  • RocketMQ 批量记录用户操作,本地计算后实时更新运营监控库存数据
    • 采用 pull 模式,设置 min/max thread 以及 maxBatchPull,自己实现批量处理逻辑
    • 不采用 transaction 模式,影响性能,带来的收益不够大

前后端约定协议

  • 解决99%的用户并发请求,使缓存方案不需要严格设计
  • 这里涉及到专利的问题(等专利pass后描述)
  • 方案的目的是提高转换率,在成本允许的范围内(或者暂时不考虑成本,成本后续结算)。
  • 控制最大成本的前提下,提高用户可用性,提高用户转换率

相关文章

网友评论

      本文标题:活动系统设计概述

      本文链接:https://www.haomeiwen.com/subject/urtyextx.html