Visión General de Streaming con Apache Kafka

Oracle Cloud Infrastructure (OCI) Streaming con Apache Kafka es un servicio de OCI totalmente gestionado que permite crear y ejecutar clusters de Kafka en un arrendamiento de OCI con todas las funcionalidades de Apache Kafka.

Apache Kafka es una plataforma de transmisión de eventos de código abierto que se utiliza para crear aplicaciones de transmisión de datos en tiempo real. Con Apache Kafka, puede:

  • Escribir y leer flujos de eventos
  • Almacena flujos de eventos
  • Procesar flujos de eventos en tiempo real o posteriormente

Con Streaming con Apache Kafka, obtiene todas las funcionalidades de Apache Kafka sin la sobrecarga que supone aprovisionar y gestionar la infraestructura subyacente.

Imagen que muestra todos los casos de uso de OCI Streaming con Apache Kafka.

Funciones

Streaming con Apache Kafka se ha creado con las siguientes funciones:

Totalmente gestionado
La transmisión con Apache Kafka está totalmente gestionada y automatiza actividades como la aplicación de parches, las actualizaciones, las copias de seguridad, la alta disponibilidad, la replicación entre regiones, la ampliación y la gestión del rendimiento.
Durabilidad y disponible
Cada cluster se configura con redundancia de almacenamiento y alta disponibilidad en los dominios de disponibilidad o los dominios de errores. Puede crear un cluster con un solo broker para los arrendamientos de desarrollo o prueba, o bien crear un cluster con al menos 3 brokers para los arrendamientos de producción para proporcionar alta disponibilidad.
La transmisión con Apache Kafka detecta y recupera automáticamente los escenarios de fallo de cluster comunes. Esto garantiza que las aplicaciones de productor y consumidor experimenten una interrupción mínima durante las operaciones de escritura y lectura. Cuando Streaming con Apache Kafka detecta un fallo de broker, mitiga el fallo o sustituye el broker inaccesible o en mal estado por uno nuevo. Siempre que sea posible, reutiliza el almacenamiento existente del broker con fallos para minimizar la cantidad de datos que Apache Kafka necesita replicar. El impacto en la disponibilidad se limita al tiempo necesario para que Streaming con Apache Kafka detecte y se recupere del fallo. Después de la recuperación, las aplicaciones de productor y consumidor pueden seguir comunicándose con los mismos puntos finales de broker que antes, lo que garantiza un funcionamiento sin problemas.
Compatibilidad de Apache Kafka
La transmisión con Apache Kafka es 100% compatible con las API de Apache Kafka, lo que le permite utilizar aplicaciones escritas para Apache Kafka sin volver a escribir el código.
Servicios integrados de OCI
  • Utilizar OCI Vault para almacenar y gestionar de forma segura las credenciales de superusuario
  • Uso de OCI Monitoring para métricas de cluster
  • Uso de OCI Logging para logs de nivel de cluster

Caso de uso

Utilice Streaming con Apache Kafka en los siguientes escenarios:

Captura de Datos de Cambio
La captura de datos de cambio (CDC) es un estilo de diseño de aplicación en el que los cambios en el estado de la aplicación se registran como una secuencia de registros ordenada por tiempo. OCI Streaming con el soporte de Apache Kafka para el almacenamiento de datos de log a escala de la nube lo convierte en un excelente backend para una aplicación creada en este estilo. Puede desplegar cualquier conector de Kafka de código abierto, o Oracle Golden Gate, en una máquina virtual (VM), que sondea las bases de datos de origen en busca de datos nuevos o modificados en función de una columna de registro de hora de actualización y transmite fácilmente los datos a OCI Streaming con Apache Kafka. Por ejemplo, las empresas de comercio electrónico utilizan CDC con Kafka para realizar un seguimiento de las actualizaciones de pedidos en su base de datos para iniciar el procesamiento de pedidos y otros micro servicios de cumplimiento de pedidos.
Imagen que muestra la arquitectura de captura de datos de cambio
Ingesta de métricas y registros
Utiliza OCI Streaming con Apache Kafka como las métricas o el procesador de logs de diversos orígenes. Las herramientas de ingestión de logs, como Fluentd, Logstash o la API de productores de Kafka, pueden recopilar logs de diversas aplicaciones y colocarlos en temas de Kafka para el enriquecimiento y la agregación de datos. Con las API de Apache Kafka, puede enriquecer los datos abstrayendo los detalles de los logs y enviándolos a herramientas de análisis descendentes para seguir procesando y avanzar en las capacidades de búsqueda de logs.
Imagen en la que se muestra la arquitectura de ingesta de métricas y logs
Análisis en tiempo Real
Utiliza OCI Streaming con Apache Kafka para procesar y analizar flujos continuos de datos de dispositivos IOT u otras aplicaciones ascendentes para obtener información en tiempo real, detección de anomalías y análisis predictivos. Por ejemplo, las instituciones financieras utilizan el servicio para procesar fuentes de datos de mercado, detectar anomalías comerciales y tomar decisiones comerciales en tiempo real. Los minoristas analizan el comportamiento y las preferencias de los clientes en tiempo real para ofrecer recomendaciones y promociones personalizadas.
Imagen que muestra la arquitectura de análisis en tiempo real
Ingestión de datos de actividad web y móvil
Utilice OCI Streaming con Apache Kafka para volver a crear un pipeline de seguimiento de actividad de usuario como un juego de fuentes de publicación-suscripción en tiempo real. Estas fuentes están disponibles para suscripción para una amplia gama de casos de uso, incluidos el procesamiento en tiempo real, la supervisión en tiempo real y la carga en Hadoop o en sistemas de almacenamiento de datos fuera de línea para el procesamiento y la generación de informes fuera de línea. Puede utilizar esta solución para los siguientes usos:
  • Clickstream: Los casos de uso de Clickstream implican recopilar datos de la actividad del sitio web de múltiples productores y analizar los datos en tiempo real para proporcionar recomendaciones, como productos para comprar, artículos de noticias para leer y videos para ver.
  • Análisis de juegos: las empresas de juegos monitorean constantemente el retraso de la red, el comportamiento del usuario y las actividades dentro del juego para ofrecer a los clientes microtransacciones dentro del juego, para reequilibrar la carga de la red, cambiar los parámetros del motor de renderizado y más. Todas estas acciones ocurren en tiempo real, en el orden de milisegundos a unos pocos segundos.
Imagen en la que se muestra la ingesta de datos de actividad web y móvil
Mensajes
Utilice OCI Streaming con Apache Kafka para separar los componentes de sistemas grandes. Por ejemplo, los productores y consumidores pueden utilizar OCI Streaming con Apache Kafka como un autobús de mensajes asíncrono y actuar de forma independiente y a su propio ritmo.
Imagen que muestra la arquitectura de mensajes

Cuándo utilizar OCI Streaming con Apache Kafka frente a OCI Streaming

Revisa los detalles de OCI Streaming con Apache Kafka y OCI Streaming para encontrar la mejor solución para tus necesidades de Streaming.

OCI Streaming OCI Streams con Apache Kafka
Recomendado como bus de mensajería para comunicación de aplicación a aplicación. Ideal para cargas de trabajo pequeñas y medianas con menos de 500 particiones por región y arrendamiento. Recomendado para el almacenamiento de datos distribuidos y el procesamiento de datos en tiempo real, incluidos CDC, análisis de flujos y procesamiento de datos IOT, sin límites en el número de particiones.
Gestionado y sin servidor Gestionado, pero no sin servidor
Compatibilidad parcial con Apache Kafka 100% compatible con Apache Kafka
Latencia de rendimiento ~ 200 ms de media, cuando el cluster se ajusta correctamente. Latencia de rendimiento inferior a 100 ms cuando el cluster se ajusta correctamente.
Multi-inquilino: un único cluster contiene varios arrendamientos de clientes. Un único inquilino: cada cluster está dedicado a un único arrendamiento.
Autenticación y autorización mediante IAM. Autenticación mediante mTLS o SASL/SCRAM y autorización mediante ACL.
Límite flexible 15 y límite estricto 500 en particiones Sin límite
Retención de almacenamiento 7 días Sin límite
Sin límite de tamaño de almacenamiento Límite de tamaño de almacenamiento de 5 TB por agente
Rendimiento de escritura por partición de 1 MB por segundo y rendimiento de lectura por partición de 2 MB por segundo. Rendimiento: 10 MB por segundo.

El rendimiento por defecto por partición en Apache Kafka no es un límite fijo ni fijo, sino una combinación de factores. Se estima que es de alrededor de 10 MB por segundo por partición. El rendimiento máximo por partición depende de la infraestructura y las configuraciones subyacentes, como el tamaño de lote, el códec de compresión, el factor de replicación y el tipo de reconocimiento.

Tamaño máximo del mensaje 1 MB El tamaño máximo de mensaje por defecto se define en 1 MB para ayudar a los agentes a gestionar la memoria de forma eficaz. Esto se puede cambiar en la configuración del cluster. No hay límite de tamaño máximo, pero los mensajes muy grandes no se recomiendan y se consideran ineficaces y antipatrones en Apache Kafka.
Escala no soportada Amplíe el número de agentes de hasta treinta (30) agentes por cluster y amplíe el número de OCPU hasta el máximo definido por las unidades de computación.
50 grupos de consumidores por tema No hay límite, pero cuanto más grupos de consumidores, más uso de red.
Funcionalidades compactadas: tema, producción idempotente, transacción y API de flujo no disponibles. Funcionalidades compaccionadas tema, producción idempotente, transacción, flujo API soportado.
Métricas de baja cardinalidad limitadas disponibles Amplias métricas de alta cardinalidad disponibles

Identificadores de recursos

Streaming con Apache Kafka soporta clusters y solicitudes de trabajo como recursos de Oracle Cloud Infrastructure. La mayoría de los tipos de recursos tienen un identificador único asignado por Oracle denominado ID de Oracle Cloud (OCID). Para obtener información sobre el formato del OCID y otras formas de identificar los recursos, consulte Identificadores de recursos.

Regiones y dominios de disponibilidad

Oracle aloja sus servicios de OCI en regiones y dominios de disponibilidad. Una región es un área geográfica localizada, mientras que un Dominio de Disponibilidad es uno o más centros a los que se accede en una región. La transmisión con Apache Kafka se aloja en todas las regiones del dominio OC1.

Autenticación y autorización

Cada servicio de Oracle Cloud Infrastructure se integra con IAM con fines de autenticación y autorización para todas las interfaces (la consola, el SDK o la CLI, y la API de REST).

Un administrador de la organización debe definir grupos, compartimentos y políticas que controlen qué usuarios pueden acceder a qué servicios, qué recursos y el tipo de acceso. Por ejemplo, las políticas controlan quién puede crear usuarios nuevos, crear y gestionar la red en la nube, crear instancias, crear cubos, descargar objetos, etc. Para obtener más información, lea Introducción a las políticas.

Formas de acceder a Streaming con Apache Kafka

Puede acceder a Oracle Cloud Infrastructure (OCI) utilizando la consola (una interfaz basada en explorador), la API de REST o la CLI deOCI. En los temas de esta documentación, se incluyen instrucciones para utilizar la consola, la API y CLI. Para obtener una lista de los SDK disponibles, consulte Software development kits e interfaz de línea de comandos.

Consola: para acceder a Streaming con Apache Kafka mediante la consola, debe utilizar un explorador soportado. Para ir a la página del inicio de sesión de la consola, abra el menú de navegación en la parte superior de esta página y seleccione Consola de Infraestructura. Se le solicitará que introduzca el inquilino en la nube, el nombre de usuario y la contraseña.

API: para acceder a Streaming con Apache Kafka a través de API, la documentación de la API de REST proporciona la mayor funcionalidad, pero requiere experiencia en programación. Referencia de la API y puntos finales proporciona información detallada sobre los puntos final y los enlaces a la API disponible, incluida la API de Streaming with Apache Kafka API. La transmisión con la API de Apache Kafka le permite crear y gestionar los clusters de Kafka y los archivos de configuración. Utilice las API de Apache Kafka para las operaciones de cliente.

CLI: la CLI de OCI le permite crear y gestionar los clusters de Kafka y los archivos de configuración. Utilice las CLI de Apache Kafka para operaciones de cliente. Utilice el entorno de Cloud Shell para ejecutar las CLI.