按URL拆分Heroku Web Workers

时间:2014-08-07 18:04:56

标签: ruby-on-rails heroku

首先:我意识到在理想的世界中我可以使用SOA实现这一目标。幽默我:))

背景

想象一下,我在heroku上运行了一个rails应用程序,在用户请求方面的流量非常少,他们可以通过1个web dyno愉快地提供服务。

我在世界的某个地方也有一台机器,它可以通过http://example.com/api/bigupload定期并重复地将大文件提交给我的应用程序。

大文件占用了我的网络动态,因此用户体验很糟糕。我增加了网络动态,但大文件上传继续将它们全部用在长请求中。

问题

有什么方法可以让一个工人保留' 会响应大型上传请求,专注于为其他网址提供用户流量?

注意:我遇到类似的情况,自动大型图片上传正在吞噬我的请求并推迟访问API的用户,尽管规模较大。

1 个答案:

答案 0 :(得分:2)

我认为你有效地问:"有没有办法对我的网络动态分区进行分区,以便只有一些方法可以响应某些请求子集"。

答案(今天)并不幸。 Heroku在您的所有网络动态中随机路由。

您在网络dyno上运行了哪些Web服务器?你使用的是concurrent web server吗?如果你不这样做,那可能会产生很大的影响(因为它不会使dyno几乎同样增长)。

您是否探索过不同的架构,而不是其他应用程序提交大型上传,它会提交指向大型有效负载的指针。这样你的web dyno可以简单地将它们转储到队列中,你的工作人员可以获取有效负载和进程 - 然后你可以通过增加工作人员数量进行扩展。