Php 将LAMP用作我的游戏的服务器组件是否可行?
我一直在开发一个虚拟多人游戏,它将每个玩家的重要数据存储在我的MySQL数据库中。该游戏类似于宗族冲突,玩家可以建立自己的基地,也可以选择攻击其他玩家的基地 为了防止作弊,所有重要的函数都通过PHP在我的服务器上运行。例如,如果一个玩家想要建造一座房子,服务器会被告知:玩家想要建造一座到网格{x,y}的房子,PHP脚本会从数据库中检查该区域是否空闲,玩家是否有技术、资金等 所有这些功能都相对简单。他们只是检查谁试图访问数据库,以及他们是否可以做他们想做的事情。然后服务器将更新数据库中播放器的数据,并向设备返回消息Php 将LAMP用作我的游戏的服务器组件是否可行?,php,mysql,lamp,Php,Mysql,Lamp,我一直在开发一个虚拟多人游戏,它将每个玩家的重要数据存储在我的MySQL数据库中。该游戏类似于宗族冲突,玩家可以建立自己的基地,也可以选择攻击其他玩家的基地 为了防止作弊,所有重要的函数都通过PHP在我的服务器上运行。例如,如果一个玩家想要建造一座房子,服务器会被告知:玩家想要建造一座到网格{x,y}的房子,PHP脚本会从数据库中检查该区域是否空闲,玩家是否有技术、资金等 所有这些功能都相对简单。他们只是检查谁试图访问数据库,以及他们是否可以做他们想做的事情。然后服务器将更新数据库中播放器的数据
因此,基本上我的游戏将始终遵循相同的过程: 1) 播放器设备发出请求 2) 服务器验证玩家并允许或拒绝请求 3) 服务器向播放机设备发送一个响应,该设备随后响应
但我不确定我的方法是否可行或可扩展。我刚刚单独测试了一下,效果很好,但假设我在第一周就有100到1000名球员。在峰值时,每秒可能有几百个服务器请求,在这里调用PHP脚本并访问和更新数据库。如果它成为热门,并且有数千人同时访问我的PHP脚本和数据库,该怎么办 这种方法一开始是否可行?如果我的服务器足够强大,那么一个PHP脚本可以被这么多人同时访问吗?服务器可以在一秒钟内写入我的数据库数百次吗?它会对操作进行排队吗?它会忽略一些操作吗?重叠操作会失败吗
例如,如果我支付了AWS EC2的费用并在那里安装了我的LAMP,这种系统会工作吗?或者我会遇到一些我不知道的限制或问题吗?是的,LAMP环境可以轻松管理每秒超过10k的请求 这里只有一个建议,而不是
Apache2
server使用性能优于Apache2
server的Nginx
server。AsNginx
在大多数情况下仍然是性能更好的选择
参考:
如果您想自己进行基准测试,您可以使用:
由于您计划在EC2上部署它,最初您可以使用m5a.large,稍后再创建(克隆)一个m5a.large Ubuntu服务器,并将它们都放在ELB下
祝你好运 是的,LAMP环境可以轻松管理每秒超过10k的请求 这里只有一个建议,而不是
Apache2
server使用性能优于Apache2
server的Nginx
server。AsNginx
在大多数情况下仍然是性能更好的选择
参考:
如果您想自己进行基准测试,您可以使用:
由于您计划在EC2上部署它,最初您可以使用m5a.large,稍后再创建(克隆)一个m5a.large Ubuntu服务器,并将它们都放在ELB下
祝你好运
PHP脚本可以被这么多人同时访问,服务器能在一秒钟内写入我的数据库数百次吗?它会对操作进行排队吗?它会忽略一些操作吗?重叠操作会失败吗
- 每秒上百次——好的。数千人——视情况而定
- 对操作进行排队——是的,但这相当快;这些操作大部分将并行执行
- 忽略一些——不。如果他们排队的时间太长,超过了默认值为50秒的
。(不太可能发生。)锁定等待超时时间
- “只是失败”——不
- 启动PHP
- 连接到MySQL
用户信息选择
- 做一些PHP处理
- `更新用户信息
- 每秒上百次——好的。数千人——视情况而定
- 对操作进行排队——是的,但这相当快;这些操作大部分将并行执行
- 忽略一些——不。如果他们排队的时间太长,超过了默认值为50秒的
。(不太可能发生。)锁定等待超时时间
- “只是失败”——不