使用LAMP作为我的游戏可行的服务器组件吗?

问题描述 投票:0回答:2
我一直在研究一种伪多人游戏,该游戏将每个玩家的重要数据存储在我的MySQL数据库中。该游戏与《部落冲突》相似,在于玩家建立自己的基地并可以选择攻击其他玩家的基地。

为了防止作弊,所有重要功能都通过PHP在我的服务器上运行。例如,如果玩家想要盖房子,服务器会被告知:玩家想要建立BUILDING_A到grid {x,y},PHP脚本从数据库中检查该区域是否空闲,玩家是否拥有技术。 ,金钱等等。

所有这些功能都相对简单。他们只是检查谁试图访问数据库,以及他们是否可以做他们想做的事情。然后,服务器将更新数据库中的播放器数据,并向设备返回一条消息。


所以,基本上我的游戏将始终遵循相同的过程:

1)播放器设备发出请求,

2)服务器验证播放器并允许或拒绝该请求,

3)服务器向播放器设备发送响应,并且该设备跟随它。


但是我不确定我的方法是否可行或可扩展。我一直在单独测试它,并且效果很好,但可以说第一周我有100或1000名玩家。高峰时每秒可能有数百个服务器请求,其中会调用PHP脚本,并访问和更新数据库。如果它大受欢迎并且有成千上万的人同时访问我的PHP脚本和数据库怎么办?

这种方法从一开始就可行吗?如果我的服务器功能足够强大,那么一个人可以同时访问一个PHP脚本吗,该服务器能否在一秒钟内将数百次写入我的数据库?它会将操作排队吗,会忽略一些操作,重叠操作是否会失败?

例如,如果我购买了AWS EC2并在那里安装了LAMP,这种系统是否可以工作,或者遇到某种限制或我不知道的问题?

php mysql lamp
2个回答
1
投票
是的,通过LAMP环境可以轻松管理每秒超过1万个请求。

这里只有一个建议而不是Apache2服务器使用性能比Nginx服务器更好的Apache2服务器。由于Nginx在大多​​数情况下仍是性能的更好选择。

参考:https://theorganicagency.com/blog/apache-vs-nginx-performance-comparison/

如果要自己进行基准测试,则可以使用[https://www.litespeedtech.com/benchmarks/php-hello-world

当您计划将其最初部署在EC2上时,可以使用m5a.large,后来在流行度上创建(克隆)一台m5a.large Ubuntu服务器,并将它们都置于ELB下。

祝你好运!


0
投票
PHP脚本可同时被许多人访问,并且服务器能否在一秒钟内将数百次写入我的数据库?它会将操作排队吗,会忽略一些操作,重叠操作是否会失败?

    每秒几百-好。千-取决于。
  • 将操作排入队列-是的,但是速度很快;这些操作通常会并行执行。
  • [忽略一些-不。好吧,如果他们排队的时间太长,以至于超过lock_wait_timeout,默认值为50秒。 (不太可能发生。)
  • '只是失败'-编号
  • 您可能应该计划有足够的RAM来处理所有涉及的数据。 (这听起来好像没问题。)如果查询不得不过于频繁地进入磁盘,则

    that将成为游戏扩展的限制。 AWS EC2使用SSD,对吗? (HDD太慢了。)

    是否涉及图形?是什么处理的?是否完全在每个用户的客户端浏览器中?我问是因为重新绘制屏幕时是否涉及SQL查询,

    that

    可能会很重。
  • © www.soinside.com 2019 - 2024. All rights reserved.