【问题标题】:Heroku outgoing sockets + ip changesHeroku 传出套接字 + ip 更改
【发布时间】:2013-12-20 11:47:09
【问题描述】:

我们正在评估 Heroku,并希望获得有关 Heroku 托管应用程序是否可以向我们的旧旧服务器打开传出 TCP 套接字的提示。此旧版服务器具有自制的 TCP 协议。

  1. 这种传出套接字或其他与 Heroku 相关的警告是否对其行为有任何限制。例如。目前我们依赖于一个持久的沟通渠道——Heroku 会在一段时间后切断它们吗?

  2. 如前所述,我们希望我们的套接字保持打开一段时间。但是我是否正确理解 Heroku 可能会任意切换测功机的物理位置(以及 IP),这会切断我的连接?在这种情况下,我能否从 Heroku 获得一些“回调”(我可以找到其他解决方法,但回调会节省我的时间)。

非常感谢

【问题讨论】:

    标签: heroku


    【解决方案1】:

    您在从 Heroku dyno 向外建立连接方面不受限制,Heroku dyno 驻留在共享 EC2 实例上。

    没有什么可以阻止长时间运行的连接(事实上,您可能有许多与数据库和其他服务的池化持久连接)。但是,dyno 每天至少重新启动一次,因此您将希望能够重新连接和管理上下的 dyno。

    Dynos 是为您的应用程序的每次部署任意配置的。您不知道您的 dyno 将在哪些 EC2 实例上运行。因此,源 IP 地址集是随机的,并且会随着时间而变化。如果要对传入连接进行身份验证,则需要使用其他方法(如用户名/密码、证书等)。

    【讨论】:

    • 感谢您的详细回复。请澄清一下:是否有任何回调可以通过 Heroku 警告我的应用程序它的测功机被移动?在这样的回调中,我可以重新启动我的连接池等。诚然,它是“很高兴拥有”而不是炫耀。再次感谢
    • 没有回调。您需要使用的事件是您的应用程序被停止/启动。您的应用程序将至少每天重新启动一次。每次应用程序启动时,您都应该像在新的测功机上一样进行计划。
    • 在您的情况下,无法以有意义的方式“注册”测功机 - 生命周期太短,您无法从外部连接回它们。最好让您的应用程序的每个实例都回拨到您正在使用的任何服务,并假设测功机的生命周期就是连接的生命周期。
    猜你喜欢
    • 2017-02-10
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2010-10-02
    相关资源
    最近更新 更多