写点什么

架构实战营 模块七 作业

用户头像
脉醉
关注
发布于: 5 小时前

业务功能

购买英雄、皮肤、道具等;


业务约束

  1. 登录用户才能购买

  2. 用户充值商城点券之后才能购买

  3. 点券余额不足不能购买

  4. 皮肤和道具都是虚拟商品,不考虑库存,物流情况

  5. 用户只能购买一个相同的皮肤或者英雄

  6. 用户可以购买多个道具


业务分级

商城中的核心业务:充值点券,购买皮肤,道具

皮肤和道具是虚拟商品,不需考虑库存,物流情况

相关问题:

  • 充值成功或者购买道具/皮肤后,切换到异地机房,发现点券余额或者道具/皮肤没有同步


数据分类

  • RoleID:登录后就不会变了

  • 点券余额:全局强一致性,不可丢失

  • 英雄,皮肤:每个 RoleID 只有一个,全局强一致性,不可丢失

  • 道具:每个 RoleID 可以购买多个,全局强一致性,不可丢失

  • 充值记录:记录 id,每次新建,算法生成,全局唯一,只增加,不修改,不可丢失

  • 购买记录:记录 id,每次新建,算法生成,只增加,不修改,不可丢失

数据同步

  • RoleID:同登录

  • 点券余额:全局一致性,采用数据库同步

  • 英雄、皮肤:全局一致性,和 RoleID 绑定,每一个区服务器数据库同步

  • 道具:全局一致性,和 RoleID 绑定,采用数据库同步,每一个区服务器数据库同步

  • 充值记录:记录 id,每次新建,全局唯一,只增加,不修改,采用数据库同步即可

  • 购买记录:记录 id,每次新建,全局唯一,只增加,不修改,采用数据库同步即可

  • 允许用户进行异地充值和购买,因为异常同步中断,当恢复后可以通过消息队列读取临时事务表,使用事务合并技巧,获取到最终一致的数据,最后通过数据库进行同步


异常处理

         1、微信和 QQ 挂了怎么办?

          直接挂公告:系统停服维护。

         2、点券充值无法支付成功怎么办?

          提示:当前无法进行充值,等系统恢复之后在进行充值

 

         3、点券充值后未及时同步到异地机房,道具,皮肤,英雄在异地机房无法正常购买?

           可以等恢复后进行购买

      

           4、服务器之间数据同步异常,导致同步中断?

             可以采用事务合并的技巧,等服务恢复后处理用户的数据,期间如果用户购买了多个皮肤或者英雄,可以自动退回,同时返还用户点券,多购买的道具允许用户在一定时间内退单



用户头像

脉醉

关注

还未添加个人签名 2018.04.25 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 模块七 作业