2017-10-02 22 views
0

J'ai trois processus (nodejs) P1, P2, P3.Communication entre deux applications nodejs

  • La fonction A de P1 termine son exécution et envoie des données à P2. P2 effectue ses activités et sa sortie doit être envoyée à P3.

  • P3 travaille sur l'entrée envoie des données d'acquittement à la fonction B de P1.

Tous trois sont des applications de nœud j différentes et s'exécutent sur des serveurs différents (dans le même réseau local). La question est what should be the communication mechanism between these processes.

Trois options semble être viable:

1) API REST (Express)

Que tous les processus soient express REST API et en utilisant appelez le package du nœud http le nécessaire fonctions

2) Pub/Sub

Lorsque P1 termine le travail, il po st la sortie en tant que message à un sujet et P2 devient un abonné et onMessage processus P2 s'exécute.

3) TCP/IP

Une architecture client-serveur TCP/IP simple où P1 devient le client de serveur et P2 en tant que serveur. Chaque fois que P1 termine le travail, envoyer la sortie via des sockets.

Ces trois options sont destinées à de nombreuses communications entre un et plusieurs ou plusieurs, de sorte que je suppose qu'il pourrait y avoir beaucoup de frais inutiles, car mon besoin n'a qu'une seule communication entre les processus.

Y at-il une autre méthode que je peux utiliser ou l'un de ces meilleurs costumes est le dilemme.

Veuillez nous suggérer.

Merci.

Répondre

2

Vous pouvez travailler avec le protocole mqtt. C'est un protocole très léger et rapide. Dans ce protocole, vous aurez un éditeur, un abonné et un courtier. Publisher enverra des données à l'abonné sous un sujet via mqtt courtier. C'est presque le même que Pub/Sub.

MQTT Architecture

MQTT

Note: Fonction A P1 et P2 publier des données souscrira. Une fois que P2 aura terminé ses activités, il publiera les données dans P3 et P3 sera en mode d'abonnement. Après cela, P3 publiera un accusé de réception et la fonction B de P1 s'abonnera au sujet.