极客时间架构实战营模块 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


目录
相关文章
|
2月前
|
运维 Linux Apache
LAMP架构调优(三)——模块的安装与调用
LAMP架构调优(三)——模块的安装与调用
14 0
|
9月前
|
资源调度 分布式计算 调度
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
|
11月前
|
缓存 容灾 架构师
极客时间架构实战营总结
极客时间架构实战营总结
314 0
|
11月前
|
消息中间件 存储 关系型数据库
极客时间架构实战营作业八
极客时间架构实战营作业八
121 0
|
11月前
|
消息中间件 Java 中间件
极客时间架构实战营作业六
极客时间架构实战营作业六
75 0
|
11月前
|
存储 缓存 负载均衡
极客时间架构实战营作业五
极客时间架构实战营作业五
96 0
|
11月前
|
存储 JSON NoSQL
极客时间架构实战营作业四
极客时间架构实战营作业四
85 0
|
15小时前
|
负载均衡 Java API
Java微服务架构中的API网关设计与实现
Java微服务架构中的API网关设计与实现
|
21小时前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【7月更文挑战第1天】Spring Cloud是Java微服务治理明星框架,整合Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心),提供完整服务治理解决方案。通过Eureka实现服务注册与发现,Ribbon进行客户端负载均衡,Hystrix确保服务容错,Config Server集中管理配置,Zuul作为API网关简化系统复杂性。理解和使用Spring Cloud是现代Java开发者的关键技能。
9 0
|
22小时前
|
Kubernetes 监控 API
深入理解微服务架构及其在现代后端开发中的应用
随着云计算和容器技术的飞速发展,微服务架构已成为现代后端开发中的一项关键技术。本文将深入探讨微服务的设计理念、优势与挑战,并基于最新的行业数据和案例分析,揭示微服务如何优化后端系统的性能和可维护性。通过引用权威研究和技术报告,我们将展示微服务架构在处理复杂业务逻辑、提高开发效率以及增强系统的可扩展性和容错能力方面的实际效益。
10 0