ZeroMQ de Frambuesa Pi para enlazar sus sistemas

Advertencia : Este artículo ha sido traducido automáticamente por Bing Translate

Ya vimos cómo se instala el intermediario de mensajes RabbitMQ. Aquí usted será capaz de instalar al corredor que va, multi plataforma : ZeroMQ.

logotipo

Los objetivos de un proveedor de mensajes, Hay una teoría hermosa :

  • Simplificar el transporte
  • Enviar un mensaje a uno o más destinatarios
  • Solicitar información a un servidor remoto
  • Suscribirse a publicaciones
  • Transformar los mensajes para la interoperabilidad de los sistemas

Lo agradable con ZeroMQ es que además de ofrecer estas características, Es multiplataforma (Windows, Mac, Linux, iOS, Android, etc.), puede ser utilizado en la mayoría de 40 lenguajes de programación, es rápido y puede funcionar en sistemas con poca memoria. Así que la frambuesa Pi ! Y es hasta ahora vale la pena el precio de un Bus de integración de Websphere de IBM ya es Open Source !

Para comprender completamente todas las características ofrecidas por ZeroMQ, Les invito a ver Este enlace lo que explica las principales características.

ZeroMQ-Functions

Por lo tanto, propongo configurar un cliente-servidor simple para ilustrar el uso de ZeroMQ. Así que vamos a instalar al agente en la frambuesa Pi inicialmente. Va a ser nuestro servidor :

  1. Actualización del sistema
    apt - actualización && apt - get upgrade y
  2. Instalar los paquetes necesarios para compilar
    apt - get install –y g    hacer autoconf automake libtool
  3. Descargue la última versión (4.0.3 en el momento de la escritura)
    wget http://Download.ZeroMQ.org/ZeroMQ-4.0.3.tar.gz
  4. Descomprima el archivo
    tar zxvf zeromq - 4.0.3.tar.gz
  5. Compilar e instalar ZeroMQ
    CD zeromq-4.0.3. configurar hacer instalar ldconfig

¿Viniste con tu lista para usar ZeroMQ. O casi. Restos de implementar el programa para administrar tu negocio.

Propongo un simple servidor en Python

  1. Lado Frambuesa Pi, el servidor, Vamos a instalar el “encuadernación” en Python, Así que en realidad la biblioteca que te permite usar ZeroMQ mediante programas Python.
    apt-get install python-pip pip de python-all-dev instalación pyzmq
  2. Aquí está la fuente del programa que va a ser el servidor. Así que espero que los comentarios son lo suficientemente claros :
    #!/usr/bin/env python
    # Importar paquetes básicos import os import sys import tiempo
    # Importación importación zmq impresión de ZeroMQ paquete "A partir de Pi Home Server ZeroMQ server"
    # Inicializar el contexto de contexto de ZeroMQ = zmq. Contexto()
    # Configurar ZeroMQ para enviar mensajes zmq_send = context.socket(ZMQ.PUB)
    # La comunicación se realiza en el zócalo 1111
    zmq_send.Bind("TCP://*:1111")
    imprimir "Envío de mensajes en tcp://*:1111"
    # Configurar ZeroMQ para recibir mensajes zmq_recv = context.socket(ZMQ.SUB)
    # La comunicación se realiza en el zócalo 1112
    zmq_recv.Bind("TCP://*:1112")
    zmq_recv.setsockopt(ZMQ.SUSCRÍBETE, '')  # Suscribirse a todo impresión "Recibir mensajes sobre tcp://*:1112"
    imprimir "Servidor Home Server ZeroMQ PI !"
    Mientras que cierto:
        mensaje = ninguna respuesta = ninguno
        # Trate de comando para esperar un mensaje entrante:
            # Captar el mensaje y guárdelo mensaje = zmq_recv.recv()
            imprimir "Mensaje recibido : " + mensaje excepto zmq. ZMQError como err:
            imprimir "El servidor ha recibido el siguiente mensaje de error : " + Str(Err)
        # Si ha recibido un mensaje mensaje:
            respuesta = str(int(Mensaje) * 2)
            probar:
    	    imprimir "Envío de respuesta : " + responder a zmq_send.send(respuesta)
            excepto zmq.ZMQError como err:
                imprimir "Error al intentar enviar la respuesta : " + Str(Err)
    # Nunca alcanzado en teoría ...
    zmq_send.Close()
    zmq_recv.Close()
    context.term()
    imprimir "El servidor ha sido cerrado !"

Cliente de lado, Elegí hacerlo en mi Mac, en todavía de Python (Java que no he conseguido que compilarlo como quería). Para esto :

  1. Instalar Python
  2. Instalar PyZMQ
    sudo easy_install pyzmq
  3. Et voici la parte cliente :
    #!/usr/bin/env python import os import sys import tiempo importación zmq contexto = zmq. Contexto()
    # Configurar ZeroMQ para enviar mensajes zmq_recv = context.socket(ZMQ.SUB)
    # La comunicación se realiza en el zócalo 1111
    zmq_recv.Connect("TCP://192.168.1.33:1111")
    # Configurar ZeroMQ para recibir mensajes zmq_send = context.socket(ZMQ.PUB)
    # La comunicación se realiza en el zócalo 1112
    zmq_send.Connect("TCP://192.168.1.33:1112")
    zmq_recv.setsockopt(ZMQ.SUSCRÍBETE, '')
    imprimir "Cliente que Home Server ZeroMQ PI ejecuta !"
    Mientras que cierto:
        imprimir "Valor de entrada para enviar : "
        mensaje = raw_input().tira()
        Si mensaje:
            probar:
                imprimir "Enviar valor : " + mensaje zmq_send.send(Mensaje)
            excepto zmq.ZMQError como err:
                imprimir "Error al intentar enviar el valor " + Mensaje + " : " + Str(Err)
        probar:
            incoming_message = zmq_recv.recv()
            imprimir "Valor recibido del servidor : " + incoming_message excepto zmq. ZMQError como err:
            imprimir ' recibe error: ' + Str(Err)

Donc le serveur asistir une valeur, la multiplie par 2 y devuelve el resultado al cliente. Si esto es muy útil que conozco … C’est l’intention qui compte 🙂

ZeroMQ client

El resultado del cliente ZeroMQ

ZeroMQ server

El resultado del servidor ZeroMQ

Así que esto es el principio fundamental. Este sistema puede ser muy conveniente para conectar sus sistemas, centralizar los tratamientos, etc.. Es rápido y muy fácil de implementar.

No dude en compartir sus ideas de usos en el hogar o incluso en un entorno profesional !

Otra información y ejemplos aquí.

Posiblemente le gustan también....

Handpicked links

disk Page Caching using disk: enhanced Database Caching 116/435 queries in 0.190 seconds using disk Served from: pihomeserver.fr @ 2017-07-16 20:03:29 by W3 Total Cache -->