Publicación de mensajes
Emitir o publicar mensajes en un flujo del servicio Streaming.
Una vez que el flujo se ha creado y está activo, puede publicar mensajes. Consulte Publicación de un mensaje de prueba en un flujo o la Guía para desarrolladores de Streaming para obtener más información sobre la publicación, así como para familiarizarse con la partición, los mensajes grandes y la creación de lotes y la limitación para obtener más contexto.
También puede utilizar Oracle Cloud Infrastructure Connector Hub para publicar datos en un flujo desde los servicios de origen soportados, como Logging.
Aunque puede utilizar la consola para publicar mensajes de prueba en un flujo, debe utilizar la CLI, la API o un SDK para rellenar el flujo.
Para publicar mensajes mediante los SDK de Oracle Cloud Infrastructure (OCI), consulte la Guía para desarrolladores de Streaming.
Si desea aprovechar la compatibilidad con Kafka de Streaming, consulte Desarrollo con Kafka y Streaming.
También puede utilizar Oracle Cloud Infrastructure Connector Hub para publicar datos en un flujo desde los servicios de origen soportados, como Logging.
Mensajes y particiones
Los mensajes se publican en una sola partición de un flujo. Si hay más de una partición en el flujo, la decisión de en qué partición publicar el mensaje depende de si los productores están utilizando la API de Streaming y PutMessages, o si están aprovechando la compatibilidad de Kafka en Streaming y utilizando la API de Kafka.
Si los productores están utilizando la API de Streaming, la partición se gestiona en el servidor mediante el servicio Streaming. Si sus productores están utilizando la API de Kafka, la partición se gestiona en el cliente mediante Kafka.
Partición en el servidor
La partición en la que se publica un mensaje se calcula mediante la clave del mensaje. Si la clave es nula, la partición se calcula con un valor de 16 bytes aleatorio. No puede especificar qué partición utiliza una clave.
La transferencia de una clave nula coloca el mensaje en una partición aleatoria. Si un usuario publica el mismo mensaje dos veces, este podría ir a diferentes particiones, porque se genera una clave completamente nueva. No debe esperar que todos los mensajes con una clave nula vayan a la misma partición. Para garantizar que los mensajes con el mismo valor vayan a la misma partición, use la misma clave para dichos mensajes.
Para obtener más información, consulte Publicación en particiones.
Gestión de mensajes grandes
Si los mensajes superan el límite de 1 MB, puede utilizar la fragmentación o enviar el mensaje mediante Oracle Cloud Infrastructure Object Storage.
- Fragmentación: puede dividir cargas útiles grandes en varios fragmentos más pequeños que el servicio de Streaming puede aceptar. Los fragmentos se almacenan en el servicio de la misma forma que se almacenan los mensajes ordinarios (no fragmentados). La única diferencia es que el consumidor debe conservar los fragmentos y combinarlos en el mensaje cuando se hayan recopilado todos los fragmentos. Los fragmentos de la partición se pueden entrelazar con mensajes ordinarios.
-
Object Storage: se coloca una carga útil grande en Object Storage y solo se transfiere el puntero a esos datos. El receptor reconoce este tipo de carga útil del puntero, lee de forma transparente los datos de Object Storage y los proporciona al usuario final.
Creación de lotes y limitación
Recomendamos crear lotes de mensajes para evitar la limitación y mejorar el rendimiento. El tamaño de un lote de mensajes no debe ser superior a 1 MB. Si se supera este límite, el mensaje no se puede validar.
El mecanismo de limitación para PutMessages se activa cuando los ratios de escritura de datos son superiores a 1 MB por segundo por partición. No hay ninguna limitación en el número de escrituras en un flujo, siempre que el rendimiento sea inferior a 1 MB por segundo por partición.
Consulte Límites sobre los recursos de Streaming para obtener más información.
Política de IAM necesaria
Para utilizar Oracle Cloud Infrastructure, un administrador debe ser miembro de un grupo al que un administrador de arrendamiento haya otorgado acceso de seguridad en una política . Este acceso es necesario tanto si utiliza la Consola como la API de REST con un SDK, una CLI u otra herramienta. Si recibe un mensaje que indica que no tiene permiso o no está autorizado, verifique con el administrador del arrendamiento el tipo de acceso que tiene y en qué compartimento trabaja el acceso.
Para los administradores: la política de Permitir a los administradores de flujos gestionar recursos de flujo permite al grupo especificado realizar todas las acciones con el flujo y los recursos del servicio Streaming relacionados.
Si no está familiarizado con las políticas, consulte Visión general de las políticas de IAM. Para obtener más información sobre la escritura de políticas para el servicio Streaming, consulte Detalles del servicio Streaming en la referencia de política de IAM y Acceso a recursos de Streaming en arrendamientos.