2 votes

Quelle est la différence entre l'archétype de socket DEALER et ROUTER dans ZeroMQ ?

Quelle est la différence entre le ROUTER y el DEALER archétypes de socket dans zmq ?

Et lequel dois-je utiliser, si j'ai un serveur, qui reçoit des messages et un client, qui envoie des messages ? Le serveur n'enverra jamais de message à un client.

EDITAR: J'ai oublié de dire qu'il peut y avoir plusieurs instances du client.

4voto

user3666197 Points 1

Pour plus de détails sur ROUTER/DEALER Modèle de communication formelle, n'hésitez pas à consulter la documentation de l'API . Il existe de nombreuses fonctionnalités importantes pour ROUTER/DEALER ( XREQ/XREP ) qui n'ont rien de bénéfique pour votre cas d'utilisation indiqué.


Beaucoup se contentent d'envoyer, un seul se contente d'écouter ?

Étant donné que N -clients purement .send() messages à 1 -serveur, qui exclusivement .recv() mais ne renvoie jamais de message, la conception peut bénéficier d'un PUB/SUB Modèle de communication formelle.

Si d'autres préférences l'emportent sur l'approche triviale, on peut mettre en place un "câblage" plus complexe, en utilisant un autre type d'infrastructure unidirectionnelle, basée sur PUSH/PULL et utiliser une configuration inverse PUB/SUB où chaque nouveau client, le PUB côté, .connect() -s à la SUB -côté serveur, compte tenu d'un .bind() est sur une adresse IP statique connue et le client s'annonce sur ce canal de signalisation comme étant en vie (keep-alive with IP-address:port#, où le serveur devrait initier un nouvel échange de données avec le client). PUSHtoPULL.connect() installation sur le client-annonceur, .bind() -ready PULL -point d'accès latéral.


Complexe ? Plutôt un outil sans limite, seule notre imagination est notre limite.

Après un certain temps, on se rend compte de tous les pouvoirs de l'infrastructure multifonctionnelle des SIG/MSG. N'hésitez donc pas à expérimenter et à réutiliser les archétypes élémentaires dans des systèmes informatiques distribués plus complexes et coopérant entre eux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X