写点什么

模块 7 作业 - 王者荣耀商城异地多活架构设计

用户头像
En wei
关注
发布于: 2 小时前

前言

额,好像不久前刚刚说完要早做作业,结果这次拖到了最后一天,可能是异地多活这个领域确实比较陌生,再加上从来没有玩过王者荣耀,所以一直感觉没有思路,好几次打开电脑也没有下笔写。。。

但今天是 Deadline 了,是时候拿出真正的技术了。

开整。

异地多活设计方法论回顾

  • 1 个原理,CAP 原理,异地多活本质是 AP 方案

  • 3 个原则:只保证核心业务,只能做到最终一致性,只能保证绝大多数用户

  • 4 个步骤:业务分级(TOP3)->数据分类->数据同步->异常处理

  • 5 个技巧:消息队列同步,库存拆分,事务合并,实时改异步,适当容忍

作业题目

【背景】

假设现在决定要实现王者荣耀里面的商城的异地多活架构,请你分析设计一下。

【作业要求】

1. 分析王者荣耀商城的业务特点,设计其异地多活架构; 2. 按照模块 7 第 5 课的方法来设计异地多活架构。

【提示】

1. 王者荣耀的商城是虚拟物品商城,和淘宝这种实物电商有两个很大的区别,注意识别出来;

2. 用户要先调用微信钱包或者 QQ 钱包充值点券,然后在商城里面用点券支付;

3. 用户买英雄和皮肤的时候同样的英雄和皮肤只能买 1 个,不能重复购买;

4. 用户买鲜花、改名卡之类的道具可以买多个;

5. 分析步骤参考模块 7 第 6 课的案例。

作业回答

王者荣耀的商城是虚拟物品商城,与实物电商的区别主要是不需要库存和物流这两个概念。

支付的方式有很多,比如碎片,点券,荣誉积分等等。

业务分级

商城的业务主要有商品,礼物,订单,购买,充值,活动

由于商城的核心业务指标就是收入,因此按照收入来确定 TOP3 的业务,结果如下。

  1. 充值

  2. 购买

  3. 活动


数据分类

  • 充值

  1. 依赖 QQ 和微信支付或其他交易

  2. 点券等只能在充值对应的区服使用,因此充值得到的点券,积分等都在对应区服服务器中

  3. 金币,荣耀积分,碎片也存在修改

  4. 金币,荣耀积分,碎片,在商城内作为货币使用,一致性要求很高


  • 购买

  1. 用户的信息是与区服绑定的,存在修改,且是强一致的

  2. 商城的商品,修改很少,强一致


  • 活动

  1. 活动只有新增极少修改,可恢复,运营重新发即可

  2. 不同的服务器可以有不同的活动

  3. 可以恢复


同步方式

【充值】

  1. 元宝,积分,碎片等资产类的数据,数据库同步

【购买】

  1. 商品,数据库同步

  2. 用户信息,数据库同步

【活动】

  1. 活动,数据库同步+消息队列同步

异常处理

【充值】

  1. 微信支付挂了怎么办?->系统停服维护,充值失败的客服介入


【购买】

  1. 购买后没有同步到异地机房,玩家看不到买的东西?->客服介入安抚用户,购买失败的话,给予适当补偿


【活动】

  1. 活动没有同步到异地机房,看不到对应活动?->运营手动同步

异地多活架构示意图


学习总结

模块 7 主要是围绕着系统的高可用来展开的,讲了高可用原理,FMEA 方法论以及灾备的模式,然后就是第二个重点异地多活的理论和设计,最后再配上王者荣耀以及视频会议的这两个典型应用的异地多活,高可用系统设计以一种立体的方式呈现出来。

提起异地多活往往大多数技术人员都回觉得很神秘,而且确实没什么机会体验,但大厂又需要这个重要领域的实践,因此也是迈向架构师的一个拦路虎。

书到用时方恨少,做作业时确实觉得很多东西自己拿捏不住。

ps 近半年有点急功近利,下半年要少做点事,把事做好。


发布于: 2 小时前阅读数: 5
用户头像

En wei

关注

还未添加个人签名 2017.12.10 加入

还未添加个人简介

评论

发布
暂无评论
模块7作业-王者荣耀商城异地多活架构设计