写点什么

架构实战营 模块七 作业

用户头像
一雄
关注
发布于: 27 分钟前

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

【背景】 

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


【作业要求】 

1. 分析王者荣耀商城的业务特点,设计其异地多活架构;

2. 按照模块 7 第 5 课的方法来设计异地多活架构。 


  1. 异地多活架构设计

  2. 业务背景

  3. 业务数据

  4. 2020.11 月公布数据,全年日均活跃 1 亿,注册玩家数 6 亿,最高同时在线 100 万。

  5. 业务功能

  6. 使用微信或者 QQ 账号登录游戏;

  7. 对战:例如匹配、排位、巅峰赛;

  8. 商城:购买英雄、皮肤、道具等;

  9. 活动:领取各种奖励和道具;

  10. 社区:各种攻略,视频等。

  11. 关键业务约束

  12. 登录用户才能充值。

  13. 余额不够不能购买道具。

  14. 业务分级

  15. 商城

  16. 数据分类

  17. RoleID:登录后就不会变了;

  18. 用户区服信息:只会新增不会修改。

  19. 点券信息:强一致性要求,不可丢失。

  20. 英雄信息和皮肤信息:同一个账号只能有一个,只会新增,不会修改。强一致性要求,不可丢失。

  21. 鲜花、改名卡之类的道具信息:可以买多个,数量可以修改。强一致性要求,不可丢失。

  22. 购买道具的订单信息:只增加不修改,不可丢失。

  23. 数据同步

  24. RoleID 和区服对应关系:只新建不修改;数据库同步或者消息队列,重复数据采用 insert or update 操作。

  25. 点券信息:强一致性,不可丢失;数据库同步。

  26. 英雄和皮肤信息:消息队列,重复数据采用 insert or discard。与购买道具的订单信息打包成为一条信息,如果订单信息重复,丢弃。

  27. 鲜花、改名卡之类的道具信息:消息队列,重复数据采用 insert or discard。与购买道具的订单信息打包成为一条信息,如果订单信息重复,丢弃。

  28. 购买道具的订单信息:消息队列,一般与上面道具信息一起发送。如果订单信息重复,丢弃。

  29. 用户同一时间尽量使其粘在一个服务器上,要么南方,要么北方。南北互相提供一个点卷版本信息,如果发现不是最新数据,提供立即同步数据接口。同时暂停该账号商城服务。

  30. 异常处理

  31. 微信和 QQ 挂了怎么办?

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

  33. 充值点券无法支付怎么办?

  34. 提示:系统暂时无法支付

  35. 道具购买出错怎么办?

  36. 无法购买要提示,不扣点券;数量出错,提示错误,后期补偿。

发布于: 27 分钟前阅读数: 2
用户头像

一雄

关注

还未添加个人签名 2020.03.05 加入

还未添加个人简介

评论

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