【发布时间】:2015-03-08 06:15:39
【问题描述】:
我遇到了客户端上的无限循环导致 Meteor 服务器崩溃的情况。无限循环是我将修复的错误,而不是这个问题的主题。我担心恶意用户可能会创建自己的无限循环并使 Meteor 服务器崩溃。
有问题的无限循环反复调用Meteor.subscribe(...) 和Meteor.call(...)。看起来这些请求在服务器上排队到无法使用的地步,即使客户端的意图是放弃它们。有没有办法告诉服务器请求已被放弃并将其从队列中删除?
我想这不会保护服务器免受客户端发出数千个连续请求而不放弃它们的影响,所以如果有人有答案,这个问题将取代这个问题。如何限制单个客户端可以发出的请求数?
在这些 APM 图表中,您可以看到无限循环如何影响性能。我在 13:17 左右启动它,在 13:25 应用程序崩溃了(由 Heroku 因超出其内存配额而终止)。
【问题讨论】:
-
你看过大气中的速率限制/节流包吗? atmospherejs.com/?q=limit
标签: meteor infinite-loop denial-of-service ddp