Storm - Système de messagerie distribuée

Apache Storm traite les données en temps réel et l'entrée provient normalement d'un système de mise en file d'attente de messages. Un système de messagerie distribuée externe fournira les entrées nécessaires au calcul en temps réel. Spout lira les données du système de messagerie et les convertira en tuples et les entrera dans Apache Storm. Le fait intéressant est qu'Apache Storm utilise son propre système de messagerie distribué en interne pour la communication entre son nimbus et son superviseur.

Qu'est-ce que le système de messagerie distribuée?

La messagerie distribuée est basée sur le concept de mise en file d'attente fiable des messages. Les messages sont mis en file d'attente de manière asynchrone entre les applications clientes et les systèmes de messagerie. Un système de messagerie distribué offre les avantages de la fiabilité, de l'évolutivité et de la persistance.

La plupart des modèles de messagerie suivent le publish-subscribe modèle (simplement Pub-Sub) où les expéditeurs des messages sont appelés publishers et ceux qui veulent recevoir les messages sont appelés subscribers.

Une fois le message publié par l'expéditeur, les abonnés peuvent recevoir le message sélectionné à l'aide d'une option de filtrage. Habituellement, nous avons deux types de filtrage, l'un esttopic-based filtering et un autre est content-based filtering.

Notez que le modèle pub-sub ne peut communiquer que via des messages. C'est une architecture très faiblement couplée; même les expéditeurs ne savent pas qui sont leurs abonnés. De nombreux modèles de message permettent avec le courtier de messages d'échanger des messages de publication pour un accès en temps opportun par de nombreux abonnés. Un exemple concret est Dish TV, qui publie différentes chaînes telles que le sport, les films, la musique, etc.

Le tableau suivant décrit certains des systèmes de messagerie à haut débit les plus courants:

Système de messagerie distribuée La description
Apache Kafka Kafka a été développé chez LinkedIn Corporation et est devenu plus tard un sous-projet d'Apache. Apache Kafka est basé sur un modèle de publication-abonnement distribué, permanent et activé par les courtiers. Kafka est rapide, évolutif et très efficace.
RabbitMQ RabbitMQ est une application de messagerie robuste distribuée open source. Il est facile à utiliser et fonctionne sur toutes les plateformes.
JMS (service de messagerie Java) JMS est une API open source qui prend en charge la création, la lecture et l'envoi de messages d'une application à une autre. Il fournit une livraison de message garantie et suit le modèle de publication-abonnement.
ActiveMQ Le système de messagerie ActiveMQ est une API open source de JMS.
ZeroMQ ZeroMQ est un traitement de messages homologue sans courtier. Il fournit des modèles de messages push-pull, routeur-revendeur.
Crécerelle Kestrel est une file d'attente de messages distribuée rapide, fiable et simple.

Protocole d'épargne

Thrift a été créé chez Facebook pour le développement de services multilingues et l'appel de procédure à distance (RPC). Plus tard, il est devenu un projet Apache open source. Apache Thrift est unInterface Definition Language et permet de définir de nouveaux types de données et la mise en œuvre de services en plus des types de données définis de manière simple.

Apache Thrift est également un cadre de communication qui prend en charge les systèmes embarqués, les applications mobiles, les applications Web et de nombreux autres langages de programmation. Certaines des fonctionnalités clés associées à Apache Thrift sont sa modularité, sa flexibilité et ses hautes performances. En outre, il peut effectuer le streaming, la messagerie et le RPC dans des applications distribuées.

Storm utilise largement le protocole Thrift pour sa communication interne et la définition des données. La topologie des tempêtes est simplementThrift Structs. Storm Nimbus qui exécute la topologie dans Apache Storm est unThrift service.