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 conocer más información sobre las publicaciones, así como partición, los mensajes de gran tamaño y la limitación y la creación de lotes para ver más contexto.
También puede utilizar Oracle Cloud Infrastructure Connector Hub para publicar datos en un flujo desde los servicios del 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 de 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 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 qué partición publicar el mensaje depende del uso por parte de los productores de la API de Streaming y PutMessages, o del aprovechamiento de 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 la 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 clara los datos de Object Storage y el 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 se le haya otorgado acceso de seguridad en una política por parte de un administrador de arrendamiento. 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 indique que no tiene permiso o no está autorizado, verifique con su administrador de arrendamiento el tipo de acceso y el compartimento en el que funciona su 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 conoce 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 de Streaming Service en la referencia a política de IAM y Acceso a recursos de Streaming a arrendamientos.