1. 业务需求

通过活动形式,吸引用户为京东金融拉取信用花,为车主服务带来用户量,提高绑车量,将京东金融用户转化为车主用户。
通过抽奖活动,用一些奖励和刺激的手段来促使用户使用我们的app,提高用户黏性。
抽奖说明:

  1. 用户抽奖需要消耗钥匙(抽奖机会),有两种方式获取钥匙,一种是每天第一次登录可获取两把钥匙,一种是完成任务可获取一把钥匙。
  2. 用户在拥有钥匙的情况下,点击解锁图片按钮,自动使用一把钥匙解锁碎片,需四张碎片解锁一张整图,解锁整图时才真正触发抽奖。
  3. 抽奖会为用户抽取优惠券,现金红包等。

亮点:

  1. 业务分流(活动时间,没有中奖,没有绑车),最终只有少部分请求操作数据库
  2. 发奖与抽奖异步
  3. 分布式锁
  4. 缓存数据
  5. 消费端 多线程消费 本次消费集合全部处理完成后再提交(CountDownLatch),关闭mq自动消费。可能出现重复消费,通过保证幂等性或去重表解决。
  6. 放弃重试
    失败重试会影响系统性能,重试次数越多,对系统性能的影响越大。
    抽奖过程中,从抽奖信息验证到扣库存、中奖信息入库的整个过程中,任何一个环节异常或失败,我们都不会进行重试,全部当做未中奖处理,这是由抽奖的业务场景决定的,即:抽奖本身是随机的,不需要保证100%中奖。如果业务上要求100%中奖,可以在流程最后添加一个“补偿奖品环节”,即:返回失败信息之前,在给用户发一个奖品,不修改前面的整个流程。

不熄炎
6 声望2 粉丝