¿Cuáles son las principales diferencias entre Spring Cloud Data Flow y Apache Nifi?

Spring Cloud Data Flow es el rediseño nativo de la nube de Spring XD, un proyecto que tenía como objetivo simplificar el desarrollo de aplicaciones de Big Data. Los módulos de flujo y lote de Spring XD se refactorizan como flujo basado en Spring Boot y aplicaciones de microservicio de tarea / lote, respectivamente. Estas aplicaciones ahora son unidades de implementación autónomas y pueden ejecutarse “nativamente” en tiempos de ejecución modernos como Cloud Foundry, Apache YARN, Apache Mesos y Kubernetes.

Spring Cloud Data Flow ofrece una colección de patrones y mejores prácticas para transmisión distribuida basada en microservicios y canalizaciones de datos de tareas / lotes.

Algunas caracteristicas

  • Desarrolle usando DSL, REST-API, Dashboard y la GUI de arrastrar y soltar – Flo
  • Cree, pruebe unidades, solucione problemas y administre aplicaciones de microservicio de forma aislada
  • Cree canalizaciones de datos rápidamente utilizando el flujo listo para usar y las aplicaciones de tareas / lotes
  • Consumir aplicaciones de microservicio como artefactos maven o docker
  • Escale las tuberías de datos sin interrumpir los flujos de datos
  • Orquesta aplicaciones centradas en datos en una variedad de plataformas modernas de tiempo de ejecución que incluyen Cloud Foundry, Apache YARN, Apache Mesos y Kubernetes
  • Aproveche las métricas, las comprobaciones de estado y la administración remota de cada aplicación de microservicio.

Apache Nifi

Entrega de datos garantizada • Incluso a muy alta escala, la entrega está garantizada • El registro de escritura anticipada persistente (repositorio de archivos de flujo) y el particionamiento de datos (repositorio de contenido) aseguran esto. En conjunto, están diseñados de manera que permiten: • Tasas de transacción muy altas • Distribución efectiva de la carga • Esquema de copia en escritura (para cada cambio en los datos) • DataBufferingw / BackPressure y PressureRelease • Soporta el almacenamiento en búfer de todos los datos en cola . • Capacidad de contrapresión (incluso si no hay equilibrio de carga, los nodos pueden decir “Retroceso” y otros nodos en la tubería recogen la holgura. • Cuando se aplica contrapresión a una conexión, causará que el procesador sea la fuente de la conexión para dejar de programarse para ejecutarse hasta que la cola se despeje. Sin embargo, los datos seguirán en cola en las conexiones entrantes de ese procesador.

  1. Colas priorizadas • NiFi permite configurar uno o más esquemas de priorización de cómo se recuperan los datos de una cola. • Primero más antiguo, Primero más nuevo, Primero más grande, Primero más pequeño o esquema personalizado • El predeterminado es el más antiguo primero Diseñado para extensión • NiFi por diseño es altamente extensible. • Uno puede escribir personalizado: procesador, servicio de controlador, tareas de informes, priorizador, interfaz de usuario • Estas extensiones son paquetes en algo llamado archivos NAR (archivos NiFi).
  2. Interfaz visual para comando y control • Arrastrar y soltar procesadores para construir un flujo • Iniciar, detener y configurar componentes en tiempo real • Ver errores y mensajes de error correspondientes • Ver estadísticas y estado del flujo de datos • Crear plantillas de procesador y conexiones comunes
  3. Procedencia de datos (no solo linaje) • ¡Vea atributos y contenido en puntos de tiempo dados (antes y después de cada procesador)! • Registra, indexa y hace que los eventos estén disponibles para su visualización.
  4. Beneficios de Apache NiFi Plataforma de recopilación agnóstica de fuente de datos única Interfaz de usuario visual intuitiva en tiempo real con capacidades de arrastrar y soltar Potentes capacidades de seguridad de datos desde el origen hasta el almacenamiento Políticas de intercambio de datos altamente granulares Capacidad de reaccionar en tiempo real aprovechando el bidireccional flujos de datos y fuentes de datos priorizadas Plataforma extremadamente extensible y extensible
  5. Arquitectura Arquitectura de alto nivel (máquina individual)