Windows

打開兩台機器之間的連接通信

  • November 26, 2014

我正在嘗試連接兩台機器。Azure 雲服務 (A) 與不屬於 Windows Azure 的 Linux 機器 (B)。我想做的是在 A 和 B 之間建立一個開放的連接。這樣 A 就可以知道 B 還活著。我無法直接從 A ping B,因為 B 將在內部網路中。B 沒有我可以 ping 的公共 IP。換句話說,B 將通過路由器連接到網際網路。我需要通過 A 從網路向 B 發送一些命令。這就是為什麼我需要在 A 和 B 之間保持開放連接。我可以閱讀任何解決方案、想法或文章來實現這一點?

這是基礎架構圖以獲取更多詳細資訊 在此處輸入圖像描述

您要做的是更改客戶端系統中的邏輯 - 而不是每 15 分鐘連接一次,如下所示:

  • 打開與控制器伺服器的 TCP 連接
  • 報到
  • 關閉 TCP 連接

讓他們這樣做..

  • 打開與伺服器的 TCP 連接
  • 辨識自我,檢查配置文件
  • ..等待命令..
  • 連接是否失敗或關閉?再打開!(放入合理的重試定時器)

這樣,中央伺服器可以在需要時向節點發送數據,例如即時更新其配置文件 - 每個影片系統都將連接到它並能夠立即接受來自伺服器的更新。推送電子郵件系統基本上採用相同的機制 - 客戶端保持與伺服器的連接打開,伺服器可以在需要時立即向其發送新數據。

根據您的應用程序架構,插入某種消息隊列系統來執行此操作可能更有意義;我不熟悉大多數 MQ 的通信協議細節(以及它們是否可以與您的網路設置一起使用),但是像Redis Pub/Sub這樣的東西似乎非常適合。

引用自:https://serverfault.com/questions/645898