2012-09-18 4 views
2

J'ai des processus python serval qui se parlent via socket; chaque processus a un rôle ou une fonction spécifique. Ces processus s'exécutent initialement sur un réseau LAN (et l'ip des machines est statique), j'attribue donc une adresse IP et un numéro de port à chacun d'entre eux pour les laisser se trouver et se parler; mais quand je change d'environnement dynamique où l'adresse IP de chaque processus python n'est pas statique, il est fastidieux de configurer l'adresse IP du processus à chaque fois. Actuellement, j'utilise SSH pour me connecter et démarrer différents processus, et il y a deux machines avec de nombreux processus différents. Comment puis-je facilement déployer ces processus dans un environnement distribué, par exemple dans un réseau local sans fil ou sur l'ensemble de l'Internet afin qu'ils puissent se trouver par eux-mêmes; et je vais utiliser le meurtre de twitter pour distribuer mon code sur ces machines. Je suppose qu'il devrait y avoir quelque chose comme un service de nom, mais je ne suis pas sûr de ce que je devrais faire.Comment distribuer plusieurs processus python dans un environnement distribué

+0

comment les démarrer sur les différentes machines? – ted

+0

@ted J'utilise SSH pour les démarrer. Actuellement, je n'ai utilisé que deux machines. –

+0

Vous les lancez manuellement ou par un script, si oui, comment le script sait-il à quelles machines se connecter? (Mes connaissances sur la zone sont limitées mais je dirais qu'il vous reste des options: a) le 'nameservice' que vous avez suggéré, un serveur qui est connu et distribue les adresses IP des autres pairs b) au démarrage vous envoyez l'ip depuis où vous envoyez la commande pour démarrer et ainsi avoir une connexion à votre réseau de processus. Le dernier peut causer des problèmes si un lien dans la chaîne meurt (voir commentaire suivant) – ted

Répondre

1

vous pouvez

  • utilisation dns au lieu d'adresses IP
  • créer votre propre service de nom (peut-être un service de repos fournissant un registre et une fonction de recherche)
  • utiliser une implémentation zeroconf comme Bonjour ou Avahi (en fonction de votre OS)
Questions connexes