2012-09-09 20 views
0

我想要理解在heroku上处理SOA的最佳方式,我已经将它置于我的脑海,对自定义域的请求会以某种方式变慢,或者所有请求都会通过互联网“出去”?对api.myapp.com的请求会比在heroku上托管时对api-myapp.herokuapp.com的请求慢吗?

其上SOA在本质上,我们已经有这样的托管可以使像http://blogs/请求(显然在内部网络上),我想知道如果Heroku的对待*.herokuapp.com请求“内部”专用以前的项目...或者是它足够聪明到知道myapp.com实际上是myapp.herokuapp.com和路线本地,还是我完全错过了点,事实上所有的请求都“外部”

回答

1

你所要求的是网络请求是如何工作的基本知识。

每当您从应用程序请求可以说example.com时,域名将首先使用所谓的DNS服务器转换为IP地址。

所以这是如何工作的:无论你申请myapp.com还是myapp.heroku.com,你都会要求从特定IP地址获取信息,并且你请求的域名将作为请求标题的一部分被传递。 收到此请求的服务器将尝试在其内部记录中查找相应的域名和处理请求。

所以得出的结论是,无所谓你把myapp.com或myapp.heroku.com,请求的速度将永远是相同的。 PS:由于heroku会负载平衡您运行myapp.com的不同实例之间的请求,因此速度取决于以下几个因素:应用程序响应的速度,每个实例运行多少个实例以及每个实例的平均负载,此刻负载平衡器的负载是多少。但肯定不会取决于您使用的域名。

+0

我开始想知道这个,所以理论上,这个请求会和同一个区域中的任何ec2> ec2请求一样快? –

+0

如果请求是从heroku服务器发送的,它将不会离开该网络,因为会有一个名称服务器来查找您请求的URL(对于* .heroku.com)。但为了解决'myapp.net',如果URL的DNS不是网络,它将尝试在网络外部找到它。 –

+0

非常感谢的家伙,我想我被一些heroku的“图层”,特别是“路由网格”抛出,让我感到困惑。 –