Uso de Streaming con Apache Kafka

Utilice Apache Kafka con Oracle Cloud Infrastructure Streaming.

Oracle Cloud Infrastructure Streaming permite a los usuarios de Apache Kafka descargar la gestión de configuración, mantenimiento e infraestructura que requiere el alojamiento de su propio cluster de Zookeeper y Kafka.

Streaming es compatible con la mayoría de API de Kafka, lo que permite utilizar aplicaciones escritas para Kafka para enviar mensajes al servicio Streaming y recibirlos sin tener que reescribir el código. Consulte Uso de API de Kafka para obtener más información.

Streaming también puede utilizar el ecosistema de Kafka Connect para interactuar directamente con orígenes externos como bases de datos, almacenes de objetos o cualquier microservicio en Oracle Cloud. Los conectores de Kafka pueden crear, publicar y entregar temas de forma sencilla y automática, al tiempo que aprovechan el alto rendimiento y la durabilidad del servicio Streaming. Consulte Uso de Kafka Connect para obtener más información.

Entre los casos de uso de Streaming y Kafka se incluyen:

  • Mover datos de Streaming a Autonomous Data Warehouse a través del conector JDBC para realizar análisis y una visualización avanzados.

  • Utilizar el conector de Oracle GoldenGate para Big Data Service para crear una aplicación basada en eventos.

  • Mover datos de Streaming a Oracle Object Storage a través del conector de HDFS/S3 para el almacenamiento a largo plazo o para ejecutar trabajos de Hadoop/Spark.

Soporte de las API de Kafka

Streaming es totalmente compatible con las versiones más recientes de las API de Kafka. Streaming soporta las siguientes API de Kafka:

  • Producer (v0.10.0 y versiones posteriores)
  • Consumer (v0.10.0 y versiones posteriores)
  • Connect (v0.10.0.0 y versiones posteriores)
  • Admin (v0.10.1.0 y versiones posteriores)
  • Group Management (v0.10.0 y versiones posteriores)

Las siguientes API y funciones de Kafka aún no se han implantado en el servicio Streaming:

Clientes de Kafka

Si bien hay muchos clientes de Kafka disponibles, recomendamos los clientes que se han probado y certificado por completo que funcionan con el servicio Streaming.

Streaming soporta todas las versiones de apache-kafka-java.

Streaming también soporta los siguientes clientes de Kafka dentro de lo posible:

Requisitos y limitaciones

La implantación de la compatibilidad de Kafka en Streaming tiene como resultado las siguientes configuraciones, limitaciones y comportamientos.

Configuración sin pérdidas

El flujo solo soporta configuraciones de Kafka sin pérdidas. Los datos se replican de tres formas. Los mensajes de los productores no inician un acuse de recibo (ACK) desde Streaming hasta que al menos dos réplicas estén sincronizadas.

Nombres de flujo únicos

Si tiene flujos con los mismos nombres en un compartimento, no podrá utilizar Kafka con Streaming hasta que suprima los flujos duplicados, a menos que los flujos estén en diferentes pools de flujos. Solo pueden existir dos flujos con el mismo nombre en el mismo compartimento si los flujos están en pools de flujos diferentes.

Los nombres de flujos duplicados se manifiestan mediante un error de "Fallo de autenticación". Si no desea suprimir los flujos, póngase en contacto con el equipo de Streaming para que podamos renombrar los flujos sin pérdida de datos.

Reciclado de conexión de equilibrio de carga

Dado que el protocolo de Kafka utiliza conexiones TCP de larga duración, la capa de compatibilidad con Kafka de Streaming implanta un mecanismo de equilibrio de carga para equilibrar periódicamente las conexiones entre nodos de front-end. Este mecanismo cierra periódicamente las conexiones para forzar nuevas conexiones. La mayoría de los SDK de Kafka gestionan estas desconexiones automáticamente cuando consumen, pero la producción en Streaming mediante la API de Kafka puede provocar errores de desconexión. Las desconexiones se pueden mitigar agregando reintentos a sus solicitudes. Los reintentos forman parte del SDK de Kafka y se activan automáticamente, y puede configurar explícitamente su comportamiento.