DEALER und ROUTER sind Buchsen, die eine einfache Skalierung von REQ/REP-Paaren ermöglichen.
In direkter Kommunikation sprechen REQ und REP blockierend.
router - Anfragen annehmen - von REQ Seite
Router ist in der Lage der Annahme von Anfragen, fügt einen umhüllen mit Informationen über diesen requestee, und macht diese neue Nachricht durch Verbindungscode für die weitere Verarbeitung zur Verfügung). Wenn die Antwort zurückkommt (in einem Umschlag), kann sie die Antwort an den Anfragenden zurückgeben.
DEALER - Gespräche für die Arbeitnehmer - auf REP Seite
Händler über Arbeiter kümmert. Beachten Sie, dass die Arbeiter sich mit dem Händler verbinden müssen, um die gesamte Lösung nutzbar zu machen, und nicht umgekehrt.
Der DEALER ermöglicht auch eine nicht blockierende Verbindung mit REP.
Einige Verbindungscode übergibt Anfrage in einem Umschlag an den Händler, Händler verwaltet Verteilung Anforderungen an Arbeiter (ohne den Umschlag) und spätere Antworten zurück auf den Verbindungscode (wieder in einem Umschlag).
Interconnecting Code
Verbindungscode ist Nachrichten zwischen Router- und DEALER-Buchsen zu mischen.
einfachste Version ist hier: http://zguide.zeromq.org/py:rrbroker
# Simple request-reply broker
#
# Author: Lev Givon <lev(at)columbia(dot)edu>
import zmq
# Prepare our context and sockets
context = zmq.Context()
frontend = context.socket(zmq.ROUTER)
backend = context.socket(zmq.DEALER)
frontend.bind("tcp://*:5559")
backend.bind("tcp://*:5560")
# Initialize poll set
poller = zmq.Poller()
poller.register(frontend, zmq.POLLIN)
poller.register(backend, zmq.POLLIN)
# Switch messages between sockets
while True:
socks = dict(poller.poll())
if socks.get(frontend) == zmq.POLLIN:
message = frontend.recv_multipart()
backend.send_multipart(message)
if socks.get(backend) == zmq.POLLIN:
message = backend.recv_multipart()
frontend.send_multipart(message)
Dank dieses eine große einfache Erklärung war. Ich habe das großartige Buch "Node: the Right Way" gelesen, war aber ein bisschen ratlos wegen ihrer Diagramme und Erklärungen von HÄNDLERN/ROUTERN, aber Ihre haben es aufgeklärt. – armyofda12mnkeys