极客时间架构实战营模块 7 作业

简介: 极客时间架构实战营模块 7 作业

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


【背景】


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


【作业要求】


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

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


【提示】


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

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

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

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

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


设计步骤


  • 步骤一:业务分级
  • 王者荣耀商城涉及注册、登录、点券、道具(英雄、皮肤、特效等)、活动;
  • 在异地多活架构设计中,需要优先保障的是登录、点券、道具。
  • 步骤二:数据分类
  • 用户信息关键数据:RoleID。依赖 QQ 、微信、苹果账号授权登录,本身无需登录信息,QQ、微信、苹果授权登录会返回给王者荣耀全局唯一 RoleID;
  • 登录关键数据:登录 Session。拿到 RoleID 时,生成游戏访问所需要的 Session;
  • 充值关键数据:点券信息。充值依赖 QQ、微信、苹果支付系统,充值成功后,按对应平台的回调信息更新点券数值即可;
  • 道具关键数据:用户点击购买道具时,检查其是否已经拥有(APP 前台检查,已付款的隐藏购买选项),若没有购买过,则在校验点券足够之后,解锁道具的使用权限,并完成点券扣除。
  • 步骤三:数据同步
  • RoleID:接受到登录请求的服务器自行去调用三方接口获取,不涉及数据同步;
  • 登录 Session:由 DNS 将请求路由到对应服务器,不涉及数据同步,登录时自动生成即可。若所在区域的机房整个宕机,提示用户重新登录;
  • 点券数据:三方充值成功的回调消息执行幂等消费,
  • 道具数据:类似于用户的权限信息,购买后,按 RoleID 全量复制到其他
  • 步骤四:异常处理
  • 微信、QQ、苹果登录不上、三方充值失败:发布公告,让用户耐心等待三方修复问题;
  • 充值扣款点券却没更新:通过客服申诉,由人工复核,若确认系统问题,在恢复其余额的同时,给予适当补偿;
  • 道具购买后,后续发现还不能使用道具:提示用户稍后再查看,等待数据复制,视情况可以给予用户补偿。


架构图


https://www.processon.com/view/link/6183ee15e401fd493d44a0af


目录
相关文章
|
5月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
126 0
|
8月前
|
前端开发 JavaScript 架构师
Webpack模块联邦:微前端架构的新选择
Webpack的模块联邦是Webpack 5引入的革命性特性,革新了微前端架构。它允许独立的Web应用在运行时动态共享代码,无需传统打包过程。基本概念包括容器应用(负责加载协调)和远程应用(独立应用,可暴露模块)。实现步骤涉及容器和远程应用的`ModuleFederationPlugin`配置,以及在应用间导入和使用远程模块。模块联邦的优势在于独立开发、按需加载、版本管理和易于维护。通过实战案例展示了如何构建微前端应用,包括创建容器和远程应用,以及消费远程组件。高级用法涉及动态加载、路由集成、状态管理和错误处理。
129 3
|
8月前
|
监控 Java 关系型数据库
java版MES系统源码,后端采用 Spring Boot 多模块架构
MES系统采用Vue3的vue-element-plus-admin为后台,Spring Boot多模块架构,支持MySQL、Oracle等数据库,具备SaaS多租户功能。核心功能包括车间计划排程、工艺流程配置、生产质量管理、进度追踪、库存和排班管理等,全面覆盖生产运营关键环节。
124 0
java版MES系统源码,后端采用 Spring Boot 多模块架构
|
7月前
|
监控
交易平台---架构设计第一步拆分模块,拆分为7个模块
交易平台---架构设计第一步拆分模块,拆分为7个模块
|
缓存 容灾 架构师
极客时间架构实战营总结
极客时间架构实战营总结
407 0
|
消息中间件 存储 关系型数据库
极客时间架构实战营作业八
极客时间架构实战营作业八
179 0
|
9月前
|
运维 Linux Apache
LAMP架构调优(三)——模块的安装与调用
LAMP架构调优(三)——模块的安装与调用
45 0
|
9月前
|
运维 Oracle 关系型数据库
LIS实验室信息管理系统功能模块(Oracle数据库、Client/Server架构)
LIS实验室信息管理系统功能模块(Oracle数据库、Client/Server架构)
133 0
|
资源调度 分布式计算 调度
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
|
2月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。

热门文章

最新文章