一家公司在VPC中开发了一款新的多人视频游戏,采用三层架构,数据库层使用Amazon RDS for MySQL。多名玩家将同时在线竞技。开发人员希望实现一个近乎实时的前10名排行榜,并能够在保留当前分数的同时停止和恢复游戏。解决方案架构师应该实施什么来满足这些要求?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 设置一个Amazon ElastiCache for Redis集群来计算和缓存分数,供Web应用程序显示。.
为什么这是答案
Amazon ElastiCache for Redis支持复杂的数据结构,例如有序集合(sorted sets),非常适合实现实时排行榜。有序集合可以根据分数自动排序,并且能够高效地添加、更新和查询玩家分数。此外,Redis的持久化功能(RDB和AOF)允许在保留当前分数的同时停止和恢复游戏。
Memcached不支持有序集合,因此不适合实时排行榜。CloudFront是CDN服务,用于缓存静态内容或动态内容边缘缓存,不适合实时计算和存储排行榜数据。在RDS for MySQL上创建只读副本可以分担读取负载,但MySQL本身在处理高并发的实时排行榜计算方面效率不如Redis,且难以满足“近乎实时”的要求。