2013-12-19 18 views
1

我們正在評估Heroku,並希望知道Heroku託管的應用程序是否可以打開傳出TCP套接字,指向我們的舊傳統服務器。這臺遺留服務器有一個自制的TCP協議。Heroku傳出套接字+ IP變化

  1. 是否有任何限制,這樣的出局插座,或對他們的行爲等Heroku的相關警告。例如。目前我們依靠一個持久的溝通渠道 - Heroku會在一段時間後關閉它們嗎?

  2. 如上所述,我們希望我們的套接字保持打開一段時間。但是,我是否正確理解Heroku可能會隨意切換dyno的物理位置(因此IP),這會切斷我的連接?是這樣的情況,我可以從Heroku獲得一些「回調」(我可以找到其他解決方法,但回調會節省我的時間)。

非常感謝

回答

2

您從Heroku的測功機,它駐留在共享EC2實例進行連接向外的術語並不限制。

沒有什麼可以阻止更長時間的連接運行(實際上,您可能有許多連接到數據庫和其他服務的連接持久連接)。但是,dynos每天至少重新啓動一次,因此您希望能夠重新連接並管理dynos上下。

Dynos是針對您的應用程序的每個部署任意設置的。你不知道你的dyno將運行在哪個EC2實例上。所以,這組源IP地址是隨機的並隨着時間的推移而變化。如果你想認證傳入的連接,你需要使用其他方法(如用戶名/密碼,證書等)。

+0

感謝您的詳細回覆。請簡單澄清一下:Heroku有沒有可以通過哪些回調來警告我的應用程序其測功機已移動?在這樣的回調中,我可以重新啓動連接池等。無可否認,它「很高興有」,而不是一個showstopper。再次感謝 –

+0

這裏沒有回調。您需要使用的事件是您的應用程序正在停止/啓動。您的應用程序將每天至少重新啓動一次。每次應用程序啓動時,您都應該像使用新的測功機一樣進行計劃。 – Winfield

+0

在你的情況下,沒有辦法以有意義的方式「登記」dynos - 生命週期太短,你無法從外部連接回dynos。將應用程序的每個實例都設置爲家用於您正在使用的任何服務會更好,並假設測試儀的生命週期是連接的生命週期。 – Winfield