heroku dyno 一次只处理一个请求吗?
是的。Heroku dynos 是单线程的。
Heroku 可扩展至 50 个测功机。这是否足以在很短的时间内(比如半小时)处理大约 6,000 名用户和每笔交易大约 5 次浏览量?
这取决于您的页面加载速度。为了争论,让我们假设每个页面请求需要 2 秒(根据 Google Analytics 的建议),并且您需要加载6,000 users x 5 page views / 30 minutes
- 每分钟 1000 次页面浏览量。
在每页加载 2 秒的情况下,一个单独的测功机每分钟将加载 30 个页面浏览量。在 50 dynos 下,这将是每分钟 1500 次页面浏览量。这显然会让你超出你的总体目标并给你留下一些出错的空间,但如果所有 6000 名用户都同时访问该页面,那么单个 Heroku 应用程序可能无法跟上你的超时时间。您需要实现一个用户队列系统 - 如下所述。
在我深入这个项目之前,你可以给我任何有用的策略或提示吗?
总而言之,2 秒的加载时间可能会根据您的页面需要加载的资产、与数据库交互所需的数量、查询、缓存等而有所不同。您的页面也可能会更快地提供服务。
您还需要担心所有用户的初始点击量。这可以通过先到先得的队列系统来解决 - 如果您曾经使用过他们的网站,则类似于 Ticketmaster 使用的系统。这可以通过 AWS SQS 或您对队列系统的偏好来完成。
通过用户队列和资产缓存以及常见的数据库查询,您应该能够使用 50 个或更少的测功机来完成此任务。
编辑:我相信 Heroku 将运行 50 个网络测功机。他们在定价页面上将 24 显示为最大值,但我无法以一种或另一种方式找到任何信息。