分布式系统开发实战:实战,使用AWS平台实现Serverless架构

本文通过实战展示了如何使用AWS平台的Serverless架构来实现全球同服游戏。游戏状态信息存储在中心站点,玩家通过HTTP(S)登录获取状态,对战通过TCP长连接。利用AWS Lambda、EC2、API Gateway、CloudWatch和SNS等服务,实现资源的按需伸缩和低延迟。
摘要由CSDN通过智能技术生成

实战:使用AWS平台实现Serverless架构

本例将演示利用AWS平台的Serverless架构来让游戏实现全球同服。

全球同服的游戏架构有以下需求。

·全球所有玩家的持久化信息(包括用户基本信息、等级、装备、进度等状态信息)都保存在中心站点。玩家统一通过HTTP(S)登录中心站点并获取状态信息。

·对战初始,由中心站点对玩家进行重定向到对应的Game Server。

在对战过程中,使用TCP长连接从而保证更好的游戏体验。

·对战结束后,客户端与Game Server中断TCP连接,对战结果数据回滚到中心站点并保存最终的状态信息。

基于上述的架构,游戏完全构建在统一的“大世界”中(唯一中心站点),并且由分布在全球的Game Server来保证游戏的低延迟。由于Game Server分布在全球不同的地区,如何做到资源的快速扩展和按需伸缩将是一个难点。下面将以Serverless架构的方式阐述实现这一需求。

首先,AWS平台提供了非常完整的API接口,开发者可以选择各种语言的SDK完成对资源的调度,这里我们可以将代码运行在Lambda中。如下所示,我们的中心站点(即Lambda部署的站点)选择的是Virginia(弗吉尼亚,美国东部地区),通过Node.js SDK跨地区到Tokyo(东京,日本首都)来启动EC2服务器。

var AWS = require('aws-sdk');
exports.handler = function (event, context) {
console.log("Received data as:", event);
var ec2 = new AWS.EC2({re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值