写点什么

架构实战模块 7

作者:努力的静静
  • 2022 年 2 月 17 日
  • 本文字数:633 字

    阅读完需:约 2 分钟

架构实战模块7

王者荣耀商城异地多活架构设计


设计步骤一 业务分级


1.业务场景: 注册,登录(联合登录)、支付(微信钱包,QQ 钱包)、充值,商品浏览,商品购买

2.其中需要异地多活保障的核心业务识别为:

A.登录,支付,充值,商品浏览,商品购买。


设计步骤二 数据分类


用户信息关键数据:RoleID


  1. 依赖 QQ 和微信账号授权登录,本身无需登录信息;

  2. 微信和 QQ 授权登录会返回给王者荣耀全局唯一 RoleID;

  3. 王者荣耀只需要记录 RoleID 对应的区服信息,区服数据只会新增不会修改。

登录关键数据:Session (确保没有关键充值和交易信息存储在 session 域,则 session 为可丢失数据重新恢复即可)。


充值关心数据:点券余额,充值流水

1.点券余额需要做到强一致性

2.充值流水作为事务性数据,需要考虑事务合并,保证数据完整一致性。


商品关键数据:道具展示信息,道具上下架状态,道具购买次数限制,道具已购买次数

1.道具展示信息为纯静态信息,

2.道具上下架状态,道具购买次数限制可以作为静态信息。

3.道具已购买次数可以考虑做本地缓存,即超过可购买次数需要屏蔽该商品,对皮肤和英雄进行有且仅有购买一次的标识,已达到保证数据一致性目的。


设计步骤三 数据同步



设计步骤四 异常处理

微信、QQ、三方充值故障:发布维护公告

充值失败,充值点券未到账:人工客服介入,待系统恢复后合并事务检查最终结果

道具购买后无法使用:界面提示等待,人工客服计入,待系统数据同步后通知结果,适当补偿


架构图


RoleID 全量同步 → 其他用户数量从主服至备服、主区服至被区服进行各数据同步.......

用户头像

还未添加个人签名 2021.01.07 加入

还未添加个人简介

评论

发布
暂无评论
架构实战模块7