0

我为我们的一个客户开发了一个基于 Web 的在线注册系统,使用 PHP、jquery 和 ajax 以及 MySQL 作为后端。该站点位于我们的 ISP 托管的专用 LINUX 服务器上。

我面临的挑战是,当注册开放时,大约有 2500 人试图进入,网站崩溃了。从我们可以看到,数百名参与者打开了注册页面,然后不断地点击页面刷新。该页面本身进行 MySQL db 调用并返回注册打开时单击的按钮。

我曾考虑过负载平衡,但现阶段不可行。有没有一种方法可以开发一个 QUEING 系统,该系统允许例如一次让 300 人继续或注册,同时将其他人的余额放在等候区,并使用显示位置的脚本人在那个队列中?

希望这有意义吗?

4

2 回答 2

1

是的,这是可能的,但正如mvp在评论中提到的那样“你真的希望人们有足够的耐心并在你的队列中等待吗?”。这可能不是一个好主意。但是你仍然可以实现它。

每当用户进入注册页面时,您必须执行以下步骤:

a) 计算表中的条目(您需要创建一个队列表,您需要在其中为注册页面的每个访问者输入条目)。

b) 如果队列表中的总计数等于(比如 300),则将用户重定向到等待页面。在等待页面,您可以使用 jquery ajax 通过调用将计算当前用户等的脚本来显示有关他/她的位置的信息。

c) 如果总计数小于(比如 300),则向用户显示注册页面,并在队列表中输入会话 ID(每个用户的唯一 ID)和时间。花点时间考虑一下是件好事,因为访问者可能会来并且会停留在注册页面上,什么也不做。因此,您必须设置一个时间限制(例如 10 分钟)以保持注册以释放队列。

d) 用户完成注册后,使用会话 ID 从该用户的队列表中删除条目。

但请记住,让访问者在您的站点排队等待注册并不是一个好主意。我认为您应该将服务器配置为轻松处理数千个请求,并且它应该是专用服务器。

我上面的细节只是一个想法,只是为了让您了解如何实现它。

我希望它会帮助你

谢谢

于 2013-05-20T10:13:17.857 回答
-2

我可以使用一个来防止服务器过载,最好让他们晚一点尝试。1-3 米奥。访客一个月的广告横幅,回答率为 2-15%,每月有 150-450000 访客有广告,所以在高峰时段可以说我们有这么多访客,所以我们要求您等到高峰结束了再回来。并告诉他们这是为了防止服务器崩溃

于 2017-01-30T22:18:39.017 回答