Différence entre le traitement des flux et le traitement des messages

Quelle est la différence fondamentale entre le traitement des flux et le traitement traditionnel des messages? Comme les gens disent que kafka est un bon choix pour le traitement de flux, mais essentiellement kafka est un cadre de messagerie similaire à ActivMQ, RabbitMQ, etc.

pourquoi ne disons-nous généralement pas que L'ActiveMQ est aussi bon pour le traitement des flux.

c'Est la vitesse à laquelle les messages sont consommés par le consommateur détermine si c'est un stream?

16
demandé sur TechEnthusiast 2017-01-19 17:39:37

2 réponses

dans le traitement traditionnel des messages, vous appliquez des calculs simples sur les messages -- dans la plupart des cas individuellement par message.

dans le traitement de flux, vous appliquez des opérations complexes sur des flux d'entrées multiples et des enregistrements multiples (c'est-à-dire des messages) en même temps (comme des agrégations et des jointures).

de plus, le système de messagerie traditionnel ne peut pas remonter dans le temps, c'est-à-dire supprimer automatiquement les messages après leur livraison à tous les consommateurs abonnés. Dans en revanche, Kafka garde les messages car il utilise un modèle basé sur la traction (c'est-à-dire, les données du consommateur de Kafka) pour une quantité configurable de temps. Cela permet aux consommateurs de" rembobiner " et de consommer des messages plusieurs fois -- ou si vous ajoutez un nouveau consommateur, il peut lire l'historique complet. Cela rend le traitement de flux possible, parce qu'il permet des applications plus complexes. De plus, le traitement de flux ne concerne pas nécessairement le traitement en temps réel -- il s'agit du traitement d'un flux d'entrées infini (en contrairement au traitement par lots qui est appliqué aux entrées finies).

et Kafka offre Kafka Connect et Streams API -- il s'agit donc d'une plate-forme de traitement de flux et pas seulement un système de messagerie/pub-sub (même si elle utilise cela dans son cœur).

36
répondu Matthias J. Sax 2017-05-04 03:24:40

essentiellement Kafka est un cadre de messagerie similaire à ActiveMQ ou RabbitMQ. Il ya un certain effort pour prendre Kafka vers streaming est fait par Confluent.

https://www.confluent.io/blog/introducing-kafka-streams-stream-processing-made-simple/

alors pourquoi Kafka entre en scène en parlant de traitement de flux?

le cadre de traitement des flux diffère avec l'entrée des données.Dans le traitement par lots,vous avez certains fichiers stockés dans le fichier système et vous voulez en permanence traiter cela et stocker dans une certaine base de données. Tandis que dans les cadres de traitement de flux comme L'étincelle, la tempête, etc obtiendra l'entrée continue de certains dispositifs de capteur, alimentation api et kafka est utilisé pour alimenter le moteur de diffusion en continu.

5
répondu Paresh 2017-01-19 14:56:00