Heroku:如何根据负载时间动态扩展dynos?

21

我的应用程序在一天的不同时间可能会因各种因素而负载急剧增加。

在这些时间,我希望自动增加dynos数量。

我想根据负载时间来增加数量。如果页面加载需要X时间,则增加dynos数量。否则,就减少数量。

是否存在类似的解决方案?

3个回答

18

HireFire 能够根据各种度量标准自动缩放 Web 和 Worker dynos。我们目前支持以下度量源/类型:

  • HireFire(响应时间)| Web Dynos
  • HireFire(作业队列)| Worker Dynos
  • Heroku Logplex(响应时间)| Web Dynos
  • Heroku Logplex(每分钟请求次数)| Web Dynos
  • Heroku Logplex(Dyno CPU 负载)| Web Dynos
  • NewRelic(Apdex)| Web Dynos
  • NewRelic(响应时间)| Web Dynos
  • NewRelic(每分钟请求次数)| Web Dynos

HireFire(响应时间) 执行基本的 HTTP 请求,以测量响应时间。

HireFire(作业队列) 允许您根据工作队列大小自动缩放 Worker dynos。您将在您的端点上设置一个非常简单的端点(我们有一个 RubyGem 可以做到这一点,但是任何语言和任何库都可以轻松完成)。我们会定期进行检查,并相应地缩放您的工作人员的形成。

New Relic 允许您与 New Relic 集成。它将定期获取最新的度量标准数据,如平均响应时间、每分钟请求数和 Apdex,以确定您的 Web dyno 形成。

Heroku Logplex 是我们最新的添加功能。这种方法依赖于您(和 Heroku)的日志。您的日志将从 Heroku 的 Logplex 流式传输到 HireFire 的 Logdrain,然后将被解析为度量标准数据。与 HireFire/ResponseTime 相比,这使您能够更可靠地自动缩放 Web dynos,因为它直接从 Heroku 的路由器中获取数据。此方法也不需要任何外部依赖,如 New Relic。

如果您有任何问题,请随时联系我们!


1
为了方便未来的访问者,hirefire gem 是免费的,如果您想要扩展 WEB dynos,您必须使用这个付费应用程序。我一直在使用这个 gem 来扩展延迟邮件的工作人员,从第一天开始就完美无瑕。一旦我的流量增加到需要多个 web dynos 的程度,我将成为一个付费客户。它轻松地节省了比它花费的更多。 - brittohalloran
设置Logplex时遇到问题,因为文档页面是404:(http://docs.hirefire.io/docs/heroku-logplex),这个文档在哪里可以找到?谢谢。 - Steve Peak
@StevePeak 我们重新组织了我们的知识库,以帮助客户在打开工单之前/期间找到他们需要的内容。请访问http://support.hirefire.io/help/kb/metric-sources/logplex -- 具有讽刺意味的是,这并没有帮助到你。 ;) - Michael van Rooijen

5

我已经在许多应用程序中使用了Adept Scale,它非常棒。 - Shpigford
遗憾的是,adept-scale 只能扩展 Web dynos。使用 hirefire.io 可以同时扩展 Web 和 Worker dynos(甚至可以独立地扩展多个 Worker queues)。对我来说效果很好。 - djoll

0

10
这个宝石仅用于概念验证,不应在生产应用程序中使用。- 你实际上是否正在使用它? - Ortwin Gentz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接