what elasticsearch apache-kafka fluentd

elasticsearch - what - Fluentd vs Kafka



logstash (2)

El caso de uso es el siguiente: tengo varias aplicaciones java que se ejecutan y todas tienen que interactuar con diferentes índices de elasticsearch (cada uno tiene un objetivo específico). Por ejemplo, una aplicación A utiliza los índices A, B, C de ElasticSearch para consultar y actualizar. La aplicación B utiliza los índices A, C, D (por ejemplo).

Se requiere alguna interfaz común que pueda administrar todos estos flujos de datos. Actualmente estoy evaluando Kafka y fluentd para este propósito. ¿Alguien puede explicar cuál será el más adecuado para esta situación? He visto las características de Kafka y Fluentd y no entiendo realmente la diferencia que haría aquí. Muchas gracias.


De: La sangre vital de tu tubería de datos

Kafka se relaciona principalmente con mantener datos de registro en lugar de mover datos de registro. Por lo tanto, los productores de Kafka necesitan escribir el código para poner datos en Kafka, y los consumidores de Kafka deben escribir el código para extraer datos de Kafka.

Fluentd tiene complementos de entrada y salida para Kafka, de modo que los ingenieros de datos pueden escribir menos código para ingresar y salir datos de Kafka. Tenemos muchos usuarios que utilizan Fluentd como productor y / o consumidor de Kafka.


kafka proporciona mensajes de publicación / suscripción como un registro de confirmación distribuido. Por lo general, instala kafka en cada host en el que necesita producir algunos datos que se reenviarán a otro lugar y todos esos hosts formarán un clúster. Lo bueno aquí es que si por alguna razón la conectividad de la red se vuelve inestable o se desactiva, su aplicación puede continuar produciendo datos / registros y no se perderán. Mientras que si la aplicación envía registros directamente a algún host de registro centralizado remoto, es posible que pierda algunos registros durante el tiempo que la red falla.

fluentd es un recopilador de registros centralizado que se instala comúnmente en un host (o más si necesita escala horizontal). Se conecta a fuentes de datos remotas , aplica el filtrado y envía datos de registro unificados a receptores de datos remotos .

Desde los documentos de fluentd, puedes ver que fluentd puede consumir datos de kafka y producir datos hacia kafka también. Esto solo debería sugerir que fluentd y kafka están en capas diferentes ya que la primera usa la última.

Sería más lógico comparar fluentd y logstash en realidad. En lo que respecta a fluentd, kafka es solo otra fuente de datos y / o sumidero de datos, pero son bestias completamente diferentes.

Si desea lo mejor de ambos mundos, use kafka como canalizaciones de datos de entrada / salida desde / hacia sus aplicaciones y fluentd (o logstash) como la lectura de su sistema de registro centralizado desde esos temas de kafka.

Si desea leer más sobre el tema, puede leer cómo fluentd y kafka se complementan muy bien, lea que no están compitiendo entre sí.