【问题标题】:IP address as the hostname for AppHarbor / App Engine urlfetch to cache DNS lookupsIP 地址作为 AppHarbor / App Engine urlfetch 的主机名以缓存 DNS 查找
【发布时间】:2013-01-15 23:33:35
【问题描述】:

我有一个 AppHarbor 应用程序,我将其用作外部服务,我的其他使用 Google App Engine (python) 的服务器将请求该应用程序。 appharbor 应用程序基本上被 ping 了很多,以处理我发送的一些数据。

因为我会不断地 ping 服务,而且时间很重要,所以是否可以通过其 IP 地址而不是主机名来引用我的 appharbor 应用程序?基本上我想消除必须进行 DNS 查找并加快响应速度。

我正在使用 Google App Engine 的 urlfetch (https://developers.google.com/appengine/docs/python/urlfetch/overview) 来执行请求。是否缓存了 urlfetch 已经在幕后做的事情?如果没有,是否可以这样做?

【问题讨论】:

    标签: python google-app-engine dns urllib2 appharbor


    【解决方案1】:

    理论上,您可以将请求直接发送到 IP 地址,但您还必须 pass the host header 以便 AppHarbor 路由层可以确定哪个应用程序收到了请求。

    正如 Shay 所提到的,您不应该这样做 - DNS 查询被缓存并且不太可能成为瓶颈,并且您正在为自己设置损坏,因为 IP 地址可能会随着指向新域的域而改变知识产权。

    【讨论】:

      【解决方案2】:

      我怀疑 DNS 查找会成为您的瓶颈,但无论如何,据我所知,DNS 查找已被系统缓存(至少对于 TTL)。

      【讨论】:

        【解决方案3】:

        注册 AppEngine Sockets Trusted Tester (here) 并使用普通的 python:

        socket.gethostbyname(...)
        

        【讨论】:

        • 我在 8 个月前签署了这份文件,但仍然没有得到他们的答复。
        • 这有点令人惊讶,艾米反应灵敏。也许再次注册或在邮件列表中询问。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-08
        • 2013-12-19
        • 1970-01-01
        相关资源
        最近更新 更多