web-dev-qa-db-fra.com

différence entre le modèle pub-sub et push-pull dans zeroMq

Ces deux images sont de http://zguide.zeromq.org/page:all .

Quelle est la différence entre ces deux modèles si nous ignorons le puits dans le modèle push-pull? Y a-t-il une différence dans la façon dont un message est transféré, si oui quelle est la différence?

51
Bhuvan

La différence est qu'une socket PUB envoie le même message à tous les abonnés , tandis que Push fait un round-robin parmi toutes ses sockets PULL connectées.

Dans votre exemple, si vous envoyez un seul message depuis la racine, tous les abonnés le recevront (sauf les abonnés lents, etc.) mais seulement 1 travailleur.

Le modèle pub/sub est utilisé pour une large distribution de messages selon les sujets. Le modèle Push/pull est vraiment un mécanisme de pipelining. Votre exemple Push/Pull semble essayer d'équilibrer la charge, ce qui est bien, mais req/rep pourrait être mieux adapté à cela en raison d'autres problèmes.

Il semble que les "problèmes" ici soient décrits dans la même partie du guide 0MQ dont vous avez obtenu l'image: exemple de ventilateur push/pull

69
SteveLove