gpt4 book ai didi

PHP、MySQL、Memcache/Ajax 缩放问题

转载 作者:行者123 更新时间:2023-11-30 23:39:25 25 4
gpt4 key购买 nike

我正在用 PHP/MySQL 构建一个 ajax 井字游戏。游戏的前提是能够与您的 friend 共享一个 url,例如 mygame.com/123,并且您可以同时玩多个游戏。

我设置它的方式是当用户查看他们的游戏板空间时,每 3 秒调用一个文件 (reload.php)。这个 reload.php 构建了他们的游戏板,输出 (html) 替换了他们当前的游戏板(因此显示了轮到他们的游戏)

最初我完全使用 PHP/MySQL 构建它并且具有零缓存。一位 friend 给了我一个建议,尝试通过内存缓存(存储移动和 ID 匹配)来完成所有临时/快速读取信息,然后根据这些信息构建游戏板。

我的问题是,当大约有 30-40 个活跃用户并运行大约 40-50 个游戏时,这两种解决方案都会遇到瓶颈。

它在 VPS.net 的 VPS 上运行,有 2 个节点。 (专用 CPU:1.2GHz,内存:752MB)

每次调用 reload.php 都会执行 3 次选择和 2 次插入查询。被拉取的数据的大小可以忽略不计。同样的操作发生在 index.php 上,为初次访问构建看板。

既然背景故事已经完成,我的问题是:

每个用户每 3 秒轮询一次相同的文件以重建他们的游戏板,并且所有用户都坐在 index.php 上,AJAX 调用是在 HTML 中进行的,这是否会造成瓶颈?

如果是这样,是否可以将用户的调用分散到一组指定用于构建游戏板的文件(例如 reload1.php 2、3 等)并将用户引导至适当的文件。这会减轻压力吗?

冗长的解释;但是,我没有其他地方可以问。

非常感谢您的任何见解。

最佳答案

使用套接字服务器共享事件游戏信息,PHP 和 MySQL 确实不应该用于维护事件游戏 session 。

套接字服务器的开源示例是 red5,如果您不介意花一点钱,那么我会推荐 Smartfox。

如果您仅将其用于客户端之间的基本通信,那么设置您自己的套接字服务器也不难。

关于PHP、MySQL、Memcache/Ajax 缩放问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4703679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com