Visión general de Streaming

El servicio Oracle Cloud Infrastructure Streaming proporciona una solución duradera, escalable y totalmente gestionada para la ingesta y el consumo de flujos de datos de gran volumen en tiempo real. Utilice Streaming para cualquier caso de uso en el que se produzcan y procesen datos de forma continua y secuencial en un modelo de mensajería de publicación-suscripción.

Puede utilizar Streaming para:

Mensajería
Utilice Streaming para separar los componentes de sistemas grandes. Los productores y los consumidores pueden utilizar Streaming como un bus de mensajes asíncrono y actuar de forma independiente y a su propio ritmo.
Ingesta de métricas y logs
Utilice Streaming como alternativa a los enfoques tradicionales de raspado de archivos a fin de poder disponer de manera más rápida de datos operativos fundamentales para la indexación, el análisis y la visualización.
Ingesta de datos de actividad web o móvil
Utilice Streaming para capturar la actividad de sitios web o aplicaciones móviles, como vistas de páginas, búsquedas u otras acciones del usuario. Puede utilizar esta información para la supervisión y el análisis en tiempo real, así como en sistemas de almacenamiento de datos para la generación de informes y el procesamiento fuera de línea.
Procesamiento de eventos de infraestructura y aplicaciones
Utilice Streaming como punto de entrada unificado para los componentes en la nube a fin de informar sobre sus eventos de ciclo de vida para auditorías, contabilidad y actividades relacionadas.

Funciones de Streaming

Streaming proporciona las siguientes funciones:

Totalmente gestionado
Streaming está totalmente gestionado, desde la infraestructura subyacente hasta su aprovisionamiento, despliegue, mantenimiento, aplicación de parches de seguridad y replicación. La integración con Monitoring y las métricas por defecto facilitan las operaciones.

Oracle gestiona las particiones de flujos y los grupos de consumidores pueden manejar sus desplazamientos de mensajes.

Durabilidad y disponibilidad
Los mensajes publicados en el servicio Streaming se replican de forma síncrona en tres dominios de disponibilidad cuando están disponibles. En regiones con un único dominio de disponibilidad, los datos se replican en varios dominios de errores. Esto garantiza que incluso si un dominio de disponibilidad o un dominio de errores falla, no se pierdan los datos. El resultado son datos muy duraderos.

Oracle Cloud Infrastructure proporciona un acuerdo de nivel de servicio (SLA) para Streaming. Consulte la página Acuerdo de nivel de servicio de Oracle Cloud Infrastructure para obtener más información.

Seguridad

Los datos de flujo se cifran tanto en reposo como en tránsito, lo que garantiza la integridad del mensaje. Puede permitir a Oracle gestionar el cifrado, o utilizar el servicio Oracle Cloud Infrastructure Vault para almacenar y gestionar de forma segura sus propias claves de cifrado si necesita cumplir estándares de seguridad o conformidad específicos.

La integración con Oracle Cloud Infrastructure Identity and Access Management (IAM) le permite controlar quién y qué servicios pueden acceder a qué claves y qué acciones pueden realizar con esos recursos.

Los puntos finales privados restringen el acceso a una red virtual en la nube (VCN) especificada en su arrendamiento para que no se pueda acceder a sus flujos a través de internet.

Para obtener más información, consulte Las mejores prácticas de seguridad para la transmisión.

Procesamiento de flujos
La integración de Streaming con Oracle Cloud Infrastructure Connector Hub significa que puede designar un flujo como origen de datos, utilizar Oracle Cloud Infrastructure Functions para transformar los mensajes del flujo y generar la salida de los mensajes transformados en Object Storage o en cualquier otro destino de Connector Hub soportado al tiempo que se mantienen las garantías de orden de Streaming.
Compatibilidad con Kafka
Streaming permite descargar la configuración, el mantenimiento y la gestión de la infraestructura que requiere el alojamiento de su propio cluster de Apache Kafka.

Streaming es compatible con la mayoría de las 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 aprovecha el ecosistema de Kafka Connect para interactuar directamente con productos propios y de terceros mediante conectores de receptor y de origen Kafka listos para usar. Consulte Uso de Kafka Connect para obtener más información.

Cómo funciona Flujo

A continuación se muestra cómo funciona Streaming:

Un productor publica mensajes en un flujo, que es un log de solo agregación. Estos mensajes se distribuyen entre las particiones gestionadas por Oracle para su escalabilidad.

Las particiones le permiten distribuir un flujo mediante la división de mensajes en varios nodos (o brokers). Cada partición se puede colocar en una máquina independiente, lo que permite a varios consumidores leer un flujo en paralelo.

Un consumidor lee mensajes de una o más particiones. Los consumidores pueden leer de cualquier partición independientemente de dónde se aloje la partición. Cada mensaje dentro de un flujo se marca con un valor de desplazamiento, de modo que un consumidor puede seleccionar dónde se quedó si se interrumpe. Se garantiza que los mensajes de una partición se entregarán en el mismo orden en que se han producido.

Los consumidores pueden leer mensajes de forma explícita proporcionando la partición y el desplazamiento, o como miembro de un grupo de consumidores, que coordina el consumo de un flujo completo por parte de los miembros del grupo.
Nota

Vea una introducción en vídeo del servicio Streaming.

Para obtener más información, consulte:

Conceptos de Streaming

Los siguientes conceptos son esenciales para comprender y trabajar con Streaming.

flujo
Log de mensajes particionado y de solo agregación
pool de flujos

Agrupación que puede utilizar para organizar y gestionar flujos, incluida cualquier configuración de seguridad o Kafka compartida.

partición
Sección de un flujo. Las particiones permiten distribuir un flujo mediante la división de mensajes en varios nodos. Esto también permite que varios consumidores lean de un flujo en paralelo.
cursor

Puntero a una ubicación en un flujo. Esta ubicación puede ser un puntero en un desplazamiento o tiempo específico de una partición, o en la ubicación actual de un grupo.

mensaje
Mensaje codificado en Base64 que se publica en un flujo. Streaming es independiente del esquema y acepta cualquier formato de mensaje, incluidos XML, JSON, CSV e incluso formatos comprimidos como gzip. Los productores y los consumidores deben acordar el formato del mensaje.
productor
Entidad que publica mensajes en un flujo.
consumidor
Entidad que lee mensajes de uno o varios flujos.
grupo de consumidores
Juego de instancias que se coordinan para consumir mensajes de todas las particiones de un flujo. En un momento dado, los mensajes de una partición específica solo los puede consumir un único consumidor del grupo.
instancia
Miembro de un grupo de consumidores. Las instancias se definen cuando se crea un cursor de grupo. La pertenencia al grupo se mantiene mediante la interacción; la falta de interacción da como resultado un timeout, eliminando la instancia del grupo de consumidores.
clave
Identificador utilizado para agrupar mensajes relacionados.
desplazamiento
Ubicación de un mensaje dentro de una partición. Cada mensaje dentro de la partición se identifica por su desplazamiento. Los consumidores pueden leer mensajes a partir de cualquier desplazamiento seleccionado. Puede utilizar el desplazamiento para reiniciar la lectura de un flujo si se ha interrumpido.

Ventajas de los flujos

Los flujos tienen varias ventajas con respecto a las colas de mensajería tradicionales, como:

Persistencia de mensajes configurable
Usted controla cuánto tiempo se retienen los datos. Los mensajes de un flujo son inmutables y están disponibles para la totalidad del tiempo de retención configurado del flujo.
Reproducción
Debido a que los mensajes de un flujo no se eliminan inmediatamente cuando los consumidores los procesan, puede reproducir cualquier mensaje y todos los mensajes del flujo en cualquier momento dentro del límite de retención configurado.
Garantías de mensajes
Se garantiza que cada mensaje se entregará al menos una vez. En algunos casos, como que un consumidor no confirme los mensajes antes de desconectarse, los mensajes se pueden entregar varias veces.
Garantías de ordenación
Los mensajes de un flujo, por partición, siempre se entregan en el mismo orden en que se han producido.
Cursores de cliente
Las aplicaciones cliente controlan y realizan el seguimiento de qué mensajes se leen y pueden mover el cursor según sea necesario para una máxima flexibilidad.
Escala horizontal
Las particiones ofrecen la oportunidad de escalar verticalmente el rendimiento para satisfacer las necesidades de varios consumidores, lo que se traduce en una mayor flexibilidad.
Grupos de consumidores
Los grupos de consumidores gestionan toda la coordinación necesaria para entregar mensajes a varios consumidores de forma equilibrada. Debido a que esta gestión la realiza un grupo de consumidores en nombre de todos los miembros, podrá disfrutar de una menor sobrecarga y de facilidad operativa.