Storm: un sistema de mensajería distribuida

Apache Storm procesa datos en tiempo real y la entrada generalmente proviene del sistema de cola de mensajes. Un sistema de mensajería distribuido externo proporcionará la entrada necesaria para el cálculo en tiempo real. Spout leerá los datos del sistema de mensajería, los convertirá en tuplas y los inyectará en Apache Storm. Un hecho interesante es que Apache Storm utiliza internamente su propio sistema de mensajería distribuida para comunicarse entre su halo y su supervisor.

¿Qué es un sistema de mensajería distribuida?

La mensajería distribuida se basa en el concepto de mensajería confiable. Los mensajes se ponen en cola de forma asincrónica entre las aplicaciones cliente y los sistemas de mensajería. Un sistema de mensajería distribuida proporciona beneficios como confiabilidad, escalabilidad y persistencia.

La mayoría de los patrones de mensajería siguen publicar-suscribirse modelo (solo Pub-Sub) donde se nombran los remitentes de mensajes editores y los que quieren recibir mensajes se llaman suscriptores

Una vez que el remitente ha publicado un mensaje, los suscriptores pueden recibir el mensaje seleccionado mediante la opción de filtrado. Normalmente tenemos dos tipos de filtrado, uno de ellos es filtrado temático y uno mas filtrado de contenido

Tenga en cuenta que el modelo pub-sub solo puede comunicarse mediante mensajes. Esta es una arquitectura muy débilmente acoplada; incluso los remitentes no saben quiénes son sus suscriptores. Muchas plantillas de mensajes permiten que un agente de mensajes intercambie mensajes publicados para que muchos suscriptores tengan acceso oportuno. Un ejemplo de la vida real es Dish TV, que publica varios canales como deportes, películas, música, etc., y cualquiera puede suscribirse a su propio conjunto de canales y recibirlos siempre que los canales a los que se suscriba estén disponibles.

Sistema de mensajería

La siguiente tabla describe algunos de los sistemas de mensajería populares de gran ancho de banda.

Sistema de mensajería distribuida Descripción
Apache Kafka Kafka fue desarrollado por la corporación LinkedIn y luego se convirtió en un subproyecto de Apache. Apache Kafka se basa en un modelo de publicación-suscripción persistente, distribuido y habilitado para agentes. Kafka es rápido, escalable y altamente eficiente.
RabbitMQ RabbitMQ es una aplicación de mensajería distribuida robusta de código abierto. Es fácil de usar y funciona en todas las plataformas.
JMS (servicio de mensajería Java) JMS es una API de código abierto que admite la creación, lectura y envío de mensajes de una aplicación a otra. Proporciona una entrega de mensajes garantizada y sigue un modelo de publicación-suscripción.
ActiveMQ ActiveMQ Messaging System es una API JMS de código abierto.
ZeroMQ ZeroMQ es un procesamiento de mensajes peer-to-peer sin intermediario. Proporciona patrones de mensajería push-pull del distribuidor del router.
Cernícalo Kestrel es una cola de mensajes distribuida rápida, confiable y simple.

Protocolo económico

Thrift se creó en Facebook para desarrollar servicios en varios idiomas y llamadas a procedimientos remotos (RPC). Más tarde se convirtió en un proyecto Apache de código abierto. Apache Thrift es Lenguaje de definición de interfaz y le permite definir fácilmente nuevos tipos de datos e implementar servicios además de ciertos tipos de datos.

Apache Thrift también es una plataforma de comunicaciones que admite sistemas integrados, aplicaciones móviles, aplicaciones web y muchos otros lenguajes de programación. Algunas de las características clave de Apache Thrift son su modularidad, flexibilidad y alto rendimiento. Además, puede realizar streaming, mensajería y RPC en aplicaciones distribuidas.

Storm hace un uso extensivo del protocolo Thrift para la comunicación interna y la definición de datos. La topología de la tormenta es simple. Estructuras de ahorro… Storm Nimbus que ejecuta la topología en Apache Storm es Servicio de comisión

🚫