有了Heroku,当需要的时候,一个自动如何在web dynos上扩展呢?假设我们每2-3分钟就有100个并发用户。如果我们的应用程序卡在5-6网络dynos上。我们完蛋了。
其次,我无法24小时监控交通情况,以确定是否需要进行升级或下降。
到目前为止,我已经看到http://hirefireapp.com/和http://www.heroscale.com/对这两个方面有什么建议吗?
发布于 2012-02-07 17:24:06
heroku之所以不这样做,是因为这是一个非常复杂的问题。
例如,想象一下上面的场景,您突然开始看到队列正在形成,并想要爬行dynos。你又来了十个。但是,这不是dyno问题,您的数据库运行缓慢,所以现在有更多的dynos都坐在那里等待数据库,而数据库现在有更多的需求。
虽然有自动缩放产品存在,但我没有尝试其中任何一个,并完全相信,目前只有人类才能作出正确的呼吁,缩放。你的里程可能会不同。
我在过去发现,将资源设置到预期的使用水平(这可能高于当前的使用量)效果最好,不包括大量的流量流入(例如Hacker新闻等)。
发布于 2013-07-24 22:25:16
我构建了HireFire,并想分享一些最新的信息:
HireFire使用我们的dyno管理器自动对您的网络和员工dynos进行自动标度。我们目前支持以下度量来源:
HireFire (作业队列)
根据作业的队列大小自动对基于工人的dyno进行标度。Ruby和Python应用程序的集成可以使用第一或第三方库轻松完成。没有库,任何其他语言和/或框架也可以很容易地集成。
您可以为给定的应用程序配置任意数量的dyno管理器,而不需要额外的成本,这意味着您不局限于Procfile中的单个“工人”条目。这(可选)允许您更有效地安排工作,例如,每个队列拥有一个Procfile条目,并让HireFire独立地扩展每个单独的队列。
Heroku Logplex
Logplex (Logplex)策略允许HireFire使用您的日志来解析Heroku发出的度量数据,然后我们使用这些数据进行自动缩放。指标包括响应时间、连接时间和加载。此外,我们还支持队列时间,可以通过安装库轻松地添加队列时间。或者,您可以自己编写最小数量的代码,将必要的数据推送到日志中。
这种抽象方法(不包括队列时间)不需要任何代码更改,并且可以使用任何语言/框架。只要通过de设置一个日志,你就准备好了。
对于度量聚合,您可以在平均值和(任意)百分位数之间进行选择。
新文物
我们与新文物融合在一起。如果您已经在使用它,您可以将其连接到HireFire,并使用它们的度量(apdex、响应时间和rpm)自动调整您的web dynos。
如果你有任何问题,不要犹豫,联系!
发布于 2018-11-08 23:31:20
我在Rails社区中的许多朋友使用钢轨自动标度对Heroku进行自动标度。下面是它的工作原理:
Rails Autoscale提供了一个微小的Rack中间件,它捕获这个时间并定期将其报告给Rails Autoscale服务。这类似于新文物的大小的一小部分。
Heroku提供的自动标度只能在他们的性能层上使用(从每个dyno每月250美元开始)。如果您正在使用霍比或标准计划,您将需要找到一个第三方解决方案。
我喜欢Rails自动升级的一点是,它会根据请求队列自动调整应用程序的大小。
这是一个很好的特征,尤其是为了心灵的平静。如果您正在睡觉,并得到流量高峰,您不能手动调整dynos的数量。拥有一个可以自动升级的工具是很好的保险。
https://stackoverflow.com/questions/9180377
复制相似问题