如何在Heroku上扩展节点应用程序?

在Heroku上扩展节点应用程序的最佳做法是什么?

工人什么时候增加工具?

Heroku网站说

Crank your web dynos to increase HTTP performance. Crank your worker dynos to empty the queue faster. 

我不太清楚这对我的节点应用程序意味着什么。

Web dynos就像为服务器产生一个新的实例,Heroku在它们之间进行负载平衡。 例如,当您在同一时间(或更多)处理数千个并发连接时,这将加快速度。

当你需要做后台工作(通常存储在一个队列中)时(例如发送电子邮件,做cronjob或者甚至处理大的上传文件),工作人员dynos被使用。 你需要Web dynos来处理web的东西(处理post请求,logging用户等),而工人dynos会做“繁重的工作”,这样你的主应用程序不会因此而变慢(保持事件循环阻塞)。

打开您的networkingdynos来提高HTTP性能。

当你想提供更多的请求 /秒。
dynos负责处理你的http请求– >处理– >并发送答案。

打开你的工人dynos来更快清空队列。

当你想做更多的后台任务。
例如,您要计算昂贵的统计信息并将其caching为不同的页面。

build议虽然Herokus 持久轮胎可能会减慢并启动您的应用程序层(dynos +工作者)可能不会产生额外的性能。
直觉上,人们会认为,启动dynos和工作人员会自动启动持久层,但事实并非如此:(