tipos simbolos simbologia significado proceso flujo ejemplos diagrama compuertas stream queue rabbitmq apache-kafka messaging

stream - simbologia - simbolos diagrama de flujo de proceso



Diferencia entre el procesamiento de flujo y el procesamiento de mensajes (2)

Básicamente, Kafka es un marco de mensajería similar a ActiveMQ o RabbitMQ. Hay algunos esfuerzos para llevar a Kafka hacia la transmisión que realiza Confluent.

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

Entonces, ¿por qué Kafka entra en escena cuando se habla del procesamiento de Stream?

El marco de procesamiento de flujos difiere con la entrada de datos. En el procesamiento por lotes, tiene algunos archivos almacenados en el sistema de archivos y desea procesarlos continuamente y almacenarlos en alguna base de datos. Mientras que en marcos de procesamiento de flujo como Spark, Storm, etc. obtendremos entrada continua de algunos dispositivos sensores, se utiliza api feed y kafka para alimentar el motor de transmisión.

¿Cuál es la diferencia básica entre el procesamiento de flujo y el procesamiento de mensajes tradicional? Como la gente dice que kafka es una buena opción para el procesamiento de flujos, pero esencialmente kafka es un marco de mensajería similar a ActivMQ, RabbitMQ, etc.

¿Por qué generalmente no decimos que ActiveMQ también es bueno para el procesamiento de secuencias?

¿Es la velocidad a la que los consumidores consumen los mensajes determinan si se trata de una transmisión?


En el procesamiento de mensajes tradicional, aplica cálculos simples en los mensajes, en la mayoría de los casos individualmente por mensaje.

En el procesamiento de flujos, aplica operaciones complejas en múltiples flujos de entrada y múltiples registros (es decir, mensajes) al mismo tiempo (como agregaciones y uniones).

Además, el sistema de mensajería tradicional no puede "retroceder en el tiempo", es decir, eliminar automáticamente los mensajes después de que se entregaron a todos los consumidores suscritos. En contraste, Kafka mantiene los mensajes, ya que utiliza un modelo basado en extracción (es decir, datos de extracción del consumidor de Kafka) durante un período de tiempo configurable. Esto permite a los consumidores "rebobinar" y consumir mensajes varias veces, o si agrega un nuevo consumidor, puede leer el historial completo. Esto hace posible el procesamiento continuo, ya que permite aplicaciones más complejas. Además, el procesamiento de flujos no se trata necesariamente de un procesamiento en tiempo real, se trata de procesar un flujo de entrada infinito (en contraste con el procesamiento por lotes que se aplica a entradas finitas).

Y Kafka ofrece Kafka Connect y Streams API, por lo que es una plataforma de procesamiento de flujo y no solo un sistema de mensajería / pub-sub (incluso si usa esto en su núcleo).