【问题标题】:Adding Temporary Dyno for Spike in Traffic to my site (Heroku Rails App)为我的网站(Heroku Rails 应用程序)添加临时 Dyno 以增加流量
【发布时间】:2016-04-25 18:00:48
【问题描述】:

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

我正在使用 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 谈论了一堆不同类型的测功机等,但我不知道我应该使用哪一个,然后如何实际启动一个新的。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 heroku request dyno


    【解决方案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 here

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

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

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

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

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

    要获取为您的应用提供的所有测功机的数量,请使用

    $heroku.app.info(APP_NAME)
    

    编辑

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

    heroku ps:scale process_name=dyno_count -a app_name
    

    获取配置的测功机列表

    heroku ps -a app_name
    

    【讨论】:

    • 在我监控新的遗物编号时,有没有办法手动进行?
    • 我现在不希望它自动化。也许是下线,但此时我只想要手动控制。
    • heroku 仪表板页面在哪里?我不知道在哪里。
    • 在 heroku 的应用程序特定页面中,您可以在右侧使用编辑选项看到您配置的每个进程的滑块。您可以使用它来滑动测功机的数量。
    • 在 heroku 仪表板上,我只看到我假设的网络测功机(打开)和工人测功机(关闭)。我可以打开工人测功机,但我不能添加超过 1 个网络或工人测功机......也许这是我的 heroku 开发爱好计划的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2019-02-25
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多