2

我预计明天(新闻等)到我的网站的流量会大幅增加。我希望能够在不中断的情况下管理流量。我知道我必须添加测功机,而且成本不会太高,因为保持排队只是暂时的。

我正在使用 New Relic Add-On 进行监控

这篇文章真的很有帮助:https ://serverfault.com/questions/394602/how-to-prepare-for-a-huge-spike-in-traffic-for-launching-a-website-hosted-on-her

然而,在阅读了那篇文章并倾注了 heroku 文档之后,我无法弄清楚我实际上是如何做到这一点的......

我可以运行什么命令或从哪个界面启动一个新的测功机来处理添加的网络流量?然后,当流量恢复到正常水平时,我应该使用什么命令或从哪个界面消除额外的测功机?

Heroku 谈论了一堆不同类型的测功机等,但我不知道我应该使用哪一个,然后如何实际启动一个新的。

4

1 回答 1

1

Heroku 有一个platform-api gem,在这种情况下对你很有用。首先将gem添加到您的Gemfile并安装它。

gem platform-api

安装后,设置 heroku 客户端,最好在初始化程序中

$heroku = PlatformAPI.connect(ENV['HEROKU_API_KEY', default_headers: {'Accept' => 'application/vnd.heroku+json; version=3'})

你可以在这里找到如何获取 Heroku API KEY

现在,到缩放部分。我猜你有一些内部指标来决定何时扩展(通过进程计数、请求计数等)。下面的命令将扩大您需要的测功机数量,

$heroku.formation.update(APP_NAME, PROCESS_NAME, {quantity: DYNO_COUNT})

这将在需要时将应用程序的指定进程扩展到 X 数量的测功机。

您可以使用相同的命令来缩减您的测功机数量。此外,以下命令将帮助您获取当前为特定进程配置的测功机数量

info = $heroku.formation.info(APP_NAME, PROCESS_NAME)
info['quantity']

要获取为您的应用程序配置的所有 dynos 的数量,请使用

$heroku.app.info(APP_NAME)

编辑

如果您更喜欢手动操作,那么您可以在 heroku 的仪表板本身中执行此操作。或者,如果您更喜欢命令行,请安装 heroku toolbelt,下面是扩展应用程序的命令。

heroku ps:scale process_name=dyno_count -a app_name

获取配置的测功机列表

heroku ps -a app_name
于 2016-01-20T03:51:08.707 回答