parse.com 免费套餐确实会限制为 30 个请求/秒。
如何转化为用户数量取决于两个因素:
- 一个应用每天要处理多少个请求?
- 流量的突发性如何?
第一个因素完全由您的应用决定。一些应用程序一直“打电话回家”(也经常从后台通过服务)。其他应用程序只会偶尔连接并下载一堆将持续很长时间的内容。您的应用程序的行为方式取决于消息的数量、它们的延迟要求以及您的服务是否足够智能以将待处理的消息组合成一个请求。作为一名应用开发者,您是唯一能够做出合理估算的人。
对于第二个因素(突发性),我可以通过假设 Poisson distribution 的请求来粗略猜测。
这是一个简单的 Python 脚本,可以深入了解泊松概率函数:
import math
def poisson_probability(nr_devs, device_rps, total_rps):
# Returns the probability of total_rps requests per second,
# assuming nr_devs devices, each making device_rps (mean)
l = math.ceil(nr_devs * device_rps)
return (l ** total_rps) * math.exp(-1 * l) / math.factorial(total_rps)
def cumulative_poisson_probability(nr_devs, device_rps, cutoff_probability=0.999999):
c = 0.0
for i in xrange(1000):
p = poisson_probability(nr_devs, device_rps, i)
c += p
print "RPS: %d\tprobability: %1.6f\tcumulative: %1.6f" % (i, p, c)
if c > cutoff_probability:
break
让我们试试平均每 2 小时生成一个请求的 10 万台设备:
>>> cumulative_poisson_probability(100000, 1.0/7200.0)
...
RPS: 26 probability: 0.001299 cumulative: 0.998691
...
RPS: 35 probability: 0.000001 cumulative: 0.999999
使用这些数字,您有 99.9% 的概率在任何给定的秒内获得最多 26 个请求,并且有 99.9999% 的概率在任何给定的秒内获得最多 35 个请求。
这意味着您将大约每 1000 秒(约 20 分钟)一次超过 26 rps,每百万秒(约 11 天)一次超过 35 rps。