- 业务需求
通过活动形式,吸引用户为京东金融拉取信用花,为车主服务带来用户量,提高绑车量,将京东金融用户转化为车主用户。
通过抽奖活动,用一些奖励和刺激的手段来促使用户使用我们的app,提高用户黏性。
抽奖说明:
- 用户抽奖需要消耗钥匙(抽奖机会),有两种方式获取钥匙,一种是每天第一次登录可获取两把钥匙,一种是完成任务可获取一把钥匙。
- 用户在拥有钥匙的情况下,点击解锁图片按钮,自动使用一把钥匙解锁碎片,需四张碎片解锁一张整图,解锁整图时才真正触发抽奖。
- 抽奖会为用户抽取优惠券,现金红包等。
亮点:
- 业务分流(活动时间,没有中奖,没有绑车),最终只有少部分请求操作数据库
- 发奖与抽奖异步
- 分布式锁
- 缓存数据
- 消费端 多线程消费 本次消费集合全部处理完成后再提交(CountDownLatch),关闭mq自动消费。可能出现重复消费,通过保证幂等性或去重表解决。
- 放弃重试
失败重试会影响系统性能,重试次数越多,对系统性能的影响越大。
抽奖过程中,从抽奖信息验证到扣库存、中奖信息入库的整个过程中,任何一个环节异常或失败,我们都不会进行重试,全部当做未中奖处理,这是由抽奖的业务场景决定的,即:抽奖本身是随机的,不需要保证100%中奖。如果业务上要求100%中奖,可以在流程最后添加一个“补偿奖品环节”,即:返回失败信息之前,在给用户发一个奖品,不修改前面的整个流程。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。