Lanzado Apache Kafka 3.0.0

El equipo de la Fundación Apache ha anunciado el lanzamiento de Apache Kafka 3.0 en nombre de la comunidad de Apache Kafka. Apache Kafka 3.0 es una versión importante en más de un sentido.

Apache Kafka 3.0 presenta una variedad de características nuevas, cambios de API importantes y mejoras en KRaft, el mecanismo de consenso integrado de Apache Kafka que reemplazará a Apache ZooKeeper.

A partir de Apache Kafka 3.0, Producer habilita las garantías de entrega más sólidas de forma predeterminada. Eso significa que los usuarios obtienen pedidos y durabilidad de forma predeterminada.

Además, no se pierda las mejoras de reinicio de tareas de Kafka Connect, las mejoras de Kafka Streams en la sincronización basada en marcas de tiempo y las opciones de configuración más flexibles de MirrorMaker2.

Para revisar la lista completa de funciones y mejoras, asegúrate de leer las notas de la versión.

¿Qué es Apache Kafka?

Apache Kafka es una implementación de marco de un bus de software que utiliza procesamiento de flujo. Una plataforma de software de código abierto desarrollada por la Fundación Apache escrita en Scala y Java.

Historia de Apache Kafka

Kafka se desarrolló originalmente en LinkedIn y posteriormente, fue de código abierto a principios de 2011.

Jay Kreps, Neha Narkhede y Jun Rao ayudaron a co-crear Kafka, quien luego abandonó LinkedIn para construir Confluent.

Jay Kreps eligió nombrar el software en honor al autor Franz Kafka porque es “un sistema optimizado para la escritura” y le gustó el trabajo de Kafka.

¿Qué aplicaciones tiene Apache Kafka?

Apache Kafka se basa en el registro de confirmación y permite a los usuarios suscribirse y publicar datos en cualquier número de sistemas o aplicaciones en tiempo real.

Las aplicaciones de ejemplo incluyen administrar la coincidencia de pasajeros y conductores en Uber, proporcionar análisis en tiempo real y mantenimiento predictivo para el hogar inteligente de British Gas y realizar numerosos servicios en tiempo real en todo LinkedIn.

¿Cómo es la arquitectura de Apache Kafka?

Kafka almacena mensajes de valor-clave que provienen arbitrariamente de muchos procesos llamados productores. Los datos se pueden dividir en diferentes “particiones” dentro de diferentes “temas”.

Dentro de una partición, los mensajes se ordenan estrictamente por sus compensaciones (la posición de un mensaje dentro de una partición) y se indexan y almacenan junto con una marca de tiempo. Otros procesos llamados “consumidores” pueden leer mensajes de particiones.

Para el procesamiento de transmisiones, Kafka ofrece la API de transmisiones que permite escribir aplicaciones Java que consumen datos de Kafka y escriben los resultados en Kafka.

Apache Kafka también funciona con sistemas de procesamiento de flujo externos como Apache Apex, Apache Flink o Apache Spark.

Kafka se ejecuta en un clúster de uno o más servidores (llamados intermediarios) y las particiones de todos los temas se distribuyen entre los nodos del clúster. Además, las particiones se replican en varios agentes.

Esta arquitectura permite a Kafka entregar flujos masivos de mensajes de manera tolerante a fallas y le ha permitido reemplazar algunos de los sistemas de mensajería convencionales como Java Message Service (JMS), Advanced Message Queue Server Protocol (AMQP), etc.

Desde la versión 0.11. 0.0 Kafka ofrece escrituras transaccionales que proporcionan procesamiento de flujo exactamente una vez utilizando la API de Streams.

APIs existentes dentro de Apache Kafka

Existen cinco API principales en Kafka:

  • API de Producción: Que permite que una aplicación publique flujos de registros.
  • API de Consumidor: Que permite que una aplicación se suscriba a temas y procese flujos de registros.
  • API de Conector: Que ejecuta las API de consumidor y productor reutilizables que pueden vincular los temas a las aplicaciones existentes.
  • API de Transmisiones: Esta API convierte las transmisiones de entrada en salida y produce el resultado.
  • API de Administración: Se utiliza para gestionar temas de Kafka, agentes y otros objetos de Kafka.

Las API de consumidor y productor se basan en el protocolo de mensajería de Kafka y ofrecen una implementación de referencia para los clientes consumidores y productores de Kafka en Java.

El protocolo de mensajería subyacente es un protocolo binario que los desarrolladores pueden utilizar para escribir sus propios clientes consumidores o productores en cualquier lenguaje de programación. Esto desbloquea a Kafka del ecosistema Java Virtual Machine (JVM).

En la wiki de Apache Kafka se mantiene una lista de clientes disponibles que no son de Java.


Artículos Relacionados

Relacionado

Volver a lo básico: Introducción a Tomcat

Apache Tomcat es un contenedor de servlets de Java que existe desde hace mucho tiempo. Es de código abierto e implementa las especificaciones básicas de Java Enterprise (ahora llamada Jakarta EE) como las especificaciones Jakarta Servlet, Jakarta Server Pages y Jakarta WebSocket. https://ciberninjas.com/java-sigue-siendo-popular/ Apache Software Foundation lanzó Tomcat por primera vez en 1998, solo cuatro años después de Java. https://ciberninjas.com/java-editores/ Tomcat comenzó como la implementación de ¡SEGUIR LEYENDO!

Volver a lo básico: Introducción a JDK

JRE y JDK son frecuentemente malentendidos por los más novatos. Si solo estás interesado en ejecutar aplicaciones Java en tu computadora, puedes hacerlo fácilmente con Java Runtime Environment. Sin embargo, si deseas construir un programa de software basado en Java, es posible que necesites otras herramientas denominadas JDK, además de JRE. Los desarrolladores que recién están comenzando con Java a menudo confunden el Kit de desarrollo ¡SEGUIR LEYENDO!

Tutoriales RIP: Más de 300 Guías de Programación y Tecnología basadas en Contenidos de Stack Overflow

Las guías de RIP TUTORIAL (+300) son un proyecto de ZZZ Proyects (‎una empresa dedicada a añadir valor a la comunidad .NET) que consta en la creación de libros con contenidos extraídos de Stack Overflow. Por lo que he observado, los contenidos son de 2016/17, pese a eso. Lo considero un contenido útil. Muchas guías son una simple instalación o inicio a un contenido; pero las ¡SEGUIR LEYENDO!

Storm (Procesador de Eventos)

Apache Storm es un framework de cálculo de procesamiento de flujo distribuido escrito principalmente en el lenguaje de programación Clojure. Originalmente creado por Nathan Marz y el equipo de BackType, el proyecto fue de código abierto después de ser adquirido por Twitter. Utiliza "spouts" y "bolts" creados a medida para definir las fuentes de información y las manipulaciones para permitir el procesamiento por lotes y distribuido ¡SEGUIR LEYENDO!

Si los Lenguajes de Programación fueran Superhéroes de Marvel serían..

Existen más de 750 lenguajes de programación en el universo de la programación y cada lenguaje de programación tiene un tono y un conjunto de características únicos. https://ciberninjas.com/mejores-lenguajes-programacion-2023/ No debería sorprender que este conjunto específico de características atraiga a los excéntricos, quienes ocasionalmente se reúnen para discutir entre sus diferencias, ventajas y desventajas. Consideremos un escenario fantástico donde MCU signifique "My Universo del Código" y cada ¡SEGUIR LEYENDO!