簡體   English   中英

如何使用IP地址從Heroku中的客戶端連接服務器

[英]How to connect server from client in Heroku using IP address

我正在使用heroku開發一個應用程序,但遇到了一個問題。 在此應用程序中,我有2個dynos(一個用於服務器,另一個用於客戶端)。 由於我想從服務器獲取一些數據,因此我的客戶端需要知道服務器的IP地址(dyno)。 現在,我正在嘗試使用Fixie和QuotaGuard Static,它們告訴我一個IP地址,但是我無法使用這些IP地址連接到服務器。

你能告訴我如何解決嗎?

您想讓兩個測功機直接通過套接字連接進行通信。 不幸的是,您不能輕易做到這一點。 它與Heroku和12要素應用程序設計( http://12factor.net )的精神背道而馳,后者指定了進程應該相互隔離,並且通信應通過“網絡附加服務”進行。 第二點看似細微差別,但它會影響測功機如何發現其他服務(通過注入的環境變量)。

產生這種限制的原因很多,其中最重要的一個事實是,“ dynos”作為計算單位,可以在應用程序的生命周期中多次擴展,遷移到不同的物理服務器等。 試圖可靠地連接到dyno上的套接字實際上會變得非常復雜(如果正在運行多個,則選擇正確的套接字,在縮放/遷移事件之后重新協商連接,等等)。 請記住-即使您永遠不會調用heroku ps:scale client=2 ,Heroku也不知道這一點,並且作為一個平台,它被設計為假設您會這樣做。

解決方案是使用諸如Redis之類的中間服務,以通過諸如Python RQ之類的框架促進進程間通信。

或者,將這兩個測功機視為單獨的應用程序-然后您可以使用該應用程序的公共DNS條目通過HTTP從一個測功機連接到另一個測功機。 注意-在這種情況下,如果需要,仍然可以共享數據庫。

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM