2012-09-18 71 views
2

我有一個serval python進程通過套接字相互交談;每個過程都有一個特定的角色或功能。如何在分佈式環境中分發幾個python進程

這些進程最初運行在有線局域網上(並且機器的ip是靜態的),所以我爲它們中的每一個分配了一個ip地址和端口號,以便讓它們找到對方並相互交談;但是當我切換每個python進程的ip地址不是靜態的動態環境時,每次配置進程的ip地址都很繁瑣。 目前,我使用SSH登錄並啓動不同的進程,並且有兩臺機器有很多不同的進程

如何在分佈式環境中輕鬆地部署這些進程,比如在無線局域網或整個互聯網上,以便他們可以自己找到彼此;我將使用twitter的謀殺將我的代碼分發到這些機器上。

我想應該有一個像名稱服務的東西,但我不知道我該怎麼做。

+0

你如何在不同的機器上啓動它們? – ted

+0

@ted我使用SSH啓動它們。目前,我只使用兩臺機器。 –

+0

您可以手動或通過腳本啓動它們,如果有的話腳本如何知道要連接哪臺機器? (我在該領域的知識是有限的,但我會說你留給選擇:a)你建議的'nameservice',一個已知的服務器,併發布其他同伴的ip addesses b)在啓動期間,您發送ip在那裏你發送命令啓動,並因此有一個連接回到你的進程網絡。如果鏈條中的鏈接死掉,後面的鏈接可能會引起麻煩(請參閱下一條評論) – ted

回答

1

你可以

  • 使用DNS而不是IP地址
  • 創建自己的名稱服務(可能是一個REST服務提供註冊和查找功能)
  • 使用零配置實現像卓悅或的avahi (取決於你的操作系統)