sql >> Base de Datos >  >> NoSQL >> Redis

Novato en aplicaciones en tiempo real:Node.JS + Redis o RabbitMQ -> cliente/servidor, ¿cómo?

Arquitectónicamente, ambas opciones son las mismas que almacenar datos en un servidor de base de datos de Oracle para que otra aplicación los recupere.

Tanto la solución RabbitMQ como la de Redis requieren que sus aplicaciones se conecten a un servidor intermediario que maneja las comunicaciones de datos. Redis se parece más a Oracle, porque se puede usar simplemente como una base de datos persistente con una API de red. Pero RabbitMQ es un poco diferente porque MQ Broker no es realmente responsable de la persistencia de los datos. Si lo configura correctamente y usa las opciones correctas al publicar un mensaje, entonces RabbitMQ conservará los datos por usted, pero no podrá sacarlos excepto como parte del proceso normal de cola de mensajes. En otras palabras, RabbitMQ es para comunicar mensajes y solo ofrece persistencia como una forma de recuperarse de problemas de red o caídas del sistema.

Sugeriría usar RabbitMQ y cualquier lenguaje de programación con el que ya esté familiarizado. Dado que la M en LAMP generalmente se interpreta como MySQL, esto significa que no usaría MySQL en absoluto, o solo lo usaría para el almacenamiento de datos a largo plazo, no para las comunicaciones en tiempo real.

El sitio de RabbitMQ tiene una gran cantidad de documentación sobre la creación de aplicaciones con AMQP. Sugiero que después de instalar RabbitMQ, lea los documentos para rabbitmqctl y luego crea un vhost para experimentar. De esa manera, es fácil limpiar sus experimentos sin reiniciar todo. También sugiero usar solo intercambios de temas porque puede emular el comportamiento de los intercambios directos y de abanico usando comodines en routing_key. Recuerde, solo publica mensajes en los intercambios y solo recibe mensajes de las colas. El intercambio es responsable de que el patrón haga coincidir la clave de enrutamiento del mensaje con la clave de vinculación de la cola para determinar qué colas deben recibir una copia del mensaje. Vale la pena aprender todo el modelo AMQP incluso si solo planea enviar mensajes a una cola con el mismo nombre que la clave de enrutamiento.

Si está creando su cliente en el navegador y desea crear un prototipo, entonces debería considerar simplemente usar XHR hoy y luego pasar a algo como Kamaloka-js, que es una implementación Javascript pura de AMQP (el Protocolo AMQ) que es el protocolo estándar utilizado para comunicarse con un intermediario de mensajes RabbitMQ. En otras palabras, constrúyalo con lo que sabe hoy y luego acelere algo (AMQP) que tenga un futuro a largo plazo en su caja de herramientas.