Está vez se crea 3 scripts servidores, pueden estar en el mismo equipo o en equipos diferentes. Lo único que cambie en cada scripts es el puerto donde escucha para el servicio.
En el cliente, se crean 3 sockets con los puertos donde escucha los 3 servidores.
La idea es pasar un mensaje por parte del cliente, los servidores los recibe y los envía de vuelta al cliente.
El código del script del lado del cliente es la siguiente:
#!/usr/bin/env python #importar zeromq import zmq #Se crea una instancia del contexto context = zmq.Context() #Se crea el socket con parametro peticion (REQ) socket = context.socket(zmq.REQ) #Se crean 3 sockets con la IP y los 3 puertos donde escucha #los 3 servidores. socket.connect("tcp://127.0.0.1:5000") socket.connect("tcp://127.0.0.1:6000") socket.connect("tcp://127.0.0.1:7000") #Se crea un ciclo de 100 repeticiones for i in range(100): #Se crea el string del mensaje mensaje = "mensaje %s" % i #Se envia el mensaje socket.send(mensaje) #Se muestra en pantalla el mensaje enviado print "Enviando", mensaje #Se recibe el mensaje de vuelta msg_in = socket.recv()Los scripts de los servidores se muestra a continuación: Servidor 1:#!/usr/bin/env python #Se importa zeroMQ import zmq #Se crea la instancia del contexto context = zmq.Context() #Se crea el socket pasandole como parametro respuesta (REP) socket = context.socket(zmq.REP) #Se asocia el socket a la IP y el puerto socket.bind("tcp://127.0.0.1:5000") #Se crea un ciclo while True: #Se recibe el mensaje mensaje = socket.recv() #Se muestra en pantalla el mensaje recibido print "Recibiendo", mensaje #Se envia el mensaje de regreso al cliente socket.send(mensaje)Servidor 2:#!/usr/bin/env python #Se importa zeroMQ import zmq #Se crea la instancia del contexto context = zmq.Context() #Se crea el socket pasandole como parametro respuesta (REP) socket = context.socket(zmq.REP) #Se asocia el socket a la IP y el puerto socket.bind("tcp://127.0.0.1:6000") #Se crea un ciclo while True: #Se recibe el mensaje mensaje = socket.recv() #Se muestra en pantalla el mensaje recibido print "Recibiendo", mensaje #Se envia el mensaje de regreso al cliente socket.send(mensaje)Servidor 3:#!/usr/bin/env python #Se importa zeroMQ import zmq #Se crea la instancia del contexto context = zmq.Context() #Se crea el socket pasandole como parametro respuesta (REP) socket = context.socket(zmq.REP) #Se asocia el socket a la IP y el puerto socket.bind("tcp://127.0.0.1:7000") #Se crea un ciclo while True: #Se recibe el mensaje mensaje = socket.recv() #Se muestra en pantalla el mensaje recibido print "Recibiendo", mensaje #Se envia el mensaje de regreso al cliente socket.send(mensaje)A continuación se inicia los 3 servidores y luego el cliente: En la siguiente figura se muestra los envíos realizados por el cliente:Se muestra a continuación las figuras de los 3 servidores:Servidor 1:Servidor 2:servidor 3:Al ver las 3 figuras de los servidores se nota como se distribuye de forma equitativala recepción de los mensajes.Luego se puede complicar algo más este esquema agregando una cola entre los clientesy los servidores.
No hay comentarios:
Publicar un comentario