Oracle Cloud Infrastructure (OCI) Streaming proporciona una solución de mensajería totalmente gestionada, escalable y duradera para la asimilación de flujos continuos de grandes cantidades de datos que puedes consumir y procesar en tiempo real. Streaming está disponible en todas las regiones de Oracle Cloud Infrastructure compatibles. Para obtener una lista, visite la página Regiones y dominios de disponibilidad.
Streaming es un servicio sin servidor que descarga la gestión de la infraestructura que va desde la red hasta el almacenamiento y la configuración necesaria para transmitir sus datos. No tiene que preocuparse por el aprovisionamiento de la infraestructura, el mantenimiento continuo o la aplicación de parches de seguridad. El servicio Streaming replica datos de forma sincrónica en tres dominios de disponibilidad, lo que proporciona alta disponibilidad y durabilidad de los datos. En regiones con un solo dominio de disponibilidad, los datos se replican en tres dominios de fallo.
Streaming facilita la recopilación, el almacenamiento y el procesamiento de datos generados en tiempo real a partir de cientos de fuentes. El número de casos de uso es casi ilimitado, desde la mensajería hasta el procesamiento de flujos de datos complejos. A continuación se muestran algunos de los numerosos usos posibles de Streaming:
Comienza a usar Streaming de la siguiente manera:
También puedes usar las API de Kafka para producir y consumir desde un flujo. Para obtener más información, consulta Uso de Streaming con Apache Kafka.
El rendimiento de Streaming está diseñado para escalar sin límites añadiendo particiones a un flujo. Sin embargo, existen ciertos límites a tener en cuenta al usar Streaming:
Streaming proporciona semántica basada en flujos. La semántica de flujos proporciona garantías estrictas de ordenación por partición, capacidad de reproducción de mensajes, cursores en el lado del cliente y escala horizontal masiva de rendimiento. Las colas no ofrecen estas características. Las colas se pueden diseñar para proporcionar garantías de pedidos si se utilizan colas FIFO, pero solo a costa de agregar una sobrecarga significativa en el rendimiento.
Un flujo es un registro de mensajes con particiones, que solo se puede anexar, en el que las aplicaciones productoras escriben datos y desde el cual las aplicaciones del consumidor leen datos.
Un grupo de flujos es una agrupación que puede utilizar para organizar y administrar flujos. Los grupos de flujos brindan facilidad operativa, ya que facilitan la capacidad de compartir ajustes de configuración en múltiples flujos. Por ejemplo, los usuarios pueden compartir configuraciones de seguridad como claves de cifrado personalizadas en el grupo de flujos para cifrar los datos de todos los flujos dentro del grupo. Un grupo de flujos también permite crear un punto final privado para los flujos, ya que restringe el acceso a Internet a todos los flujos dentro de un grupo de flujos. Para aquellos clientes que utilizan la función de compatibilidad de Streaming con Kafka, el grupo de flujos sirve como raíz de un clúster virtual de Kafka, lo que permite que cada acción de dicho clúster virtual tenga el alcance del grupo de flujos.
Una partición es una unidad de rendimiento base que permite la escala horizontal y el paralelismo de producción y consumo de un flujo. Una partición proporciona una capacidad de datos de 1 MB/seg. y una salida de datos de 2 MB/seg. Cuando crees un flujo, especifica el número de particiones que necesitas en función de los requisitos de rendimiento de tu aplicación. Por ejemplo, puedes crear un flujo con diez particiones, en cuyo caso puede lograr un rendimiento de entrada de 10 MB/seg. y un rendimiento de salida de 20 MB/seg. a partir de un flujo. Si necesitas particiones que superen los límites de servicio existentes, Streaming prevé un uso mínimo de 10 GB por hora (solicitudes PUT y GET) por cada 50 particiones utilizadas. Se le cobrará el uso mínimo esperado incluso si el uso real se sitúa por debajo de esa tarifa.
Un mensaje es una unidad de datos codificada en Base64 almacenada en un flujo. El tamaño máximo de un mensaje que puede producir en una partición en un flujo es de 1 MB.
Una clave es un identificador utilizado para agrupar mensajes relacionados. Los mensajes con la misma clave se escriben en la misma partición. Streaming se asegura de que todo consumidor de una partición determinada lea siempre los mensajes de dicha partición exactamente en el mismo orden en que fueron escritos.
Un productor es una aplicación cliente que puede escribir mensajes en un flujo.
Un consumidor es una aplicación cliente que puede leer mensajes de uno o más flujos. Un grupo de consumidores es un conjunto de instancias que coordina los mensajes de todas las particiones de un flujo. En un momento dado, los mensajes de una partición específica solo pueden ser consumidos por un único consumidor del grupo.
Un cursor es un puntero a una ubicación en un flujo. Esta ubicación puede ser un puntero a un desplazamiento o momento específicos de una partición, o bien a la ubicación actual de un grupo.
Cada mensaje de una partición tiene un identificador llamado desplazamiento. Los consumidores pueden leer mensajes a partir de un desplazamiento específico y se les permite leer desde cualquier punto de desplazamiento que elijan. Los consumidores también pueden confirmar el último desplazamiento procesado a fin de poder reanudar su trabajo sin reproducir o perder un mensaje si detienen y luego reinician la tarea.
Streaming proporciona cifrado de datos de forma predeterminada, tanto en reposo como en tránsito. Streaming está completamente integrado con Oracle Cloud Infrastructure Identity and Access Management (IAM), que le permite utilizar políticas de acceso para otorgar permisos de forma selectiva a usuarios y grupos de usuarios. Al usar las API REST, también puede PUT y GET de forma segura sus datos de Streaming a través de puntos finales SSL con el protocolo HTTPS. Además, Streaming proporciona un aislamiento completo de datos a nivel de inquilino sin ningún problema tipo "vecino ruidoso".
Los datos de Streaming se cifran tanto en reposo como en tránsito; además, la integridad del mensaje está garantizada. Puedes dejar que Oracle gestione el cifrado o puede utilizar Oracle Cloud Infrastructure Vault para almacenar y administrar de forma segura tus propias claves de cifrado si necesita cumplir con estándares específicos de cumplimiento o seguridad.
Puedes editar la configuración de cifrado de datos del grupo de flujos en cualquier momento si deseas cambiar entre el uso de "Cifrado proporcionado por claves de Oracle" y "Cifrado gestionado por claves administradas por el cliente". Streaming no impone ninguna restricción sobre cuántas veces se puede realizar esta actividad.
Streaming está completamente integrada con Oracle Cloud Infrastructure IAM. Cada flujo tiene un compartimento asignado. Los usuarios pueden especificar políticas de control de acceso basadas en roles que se pueden usar para describir reglas detalladas a nivel de inquilino, de compartimento o de flujo único.
La política de acceso se especifica en forma de “Allow <subject> to <verb> <resource-type> in <location> where <conditions>”.
La autenticación con el protocolo Kafka utiliza tokens de autenticación y el mecanismo SASL/PLAIN. Puedes generar tokens en la página de detalles de usuario de la consola. Consulta Trabajar con tokens de autenticación para obtener más información. Recomendamos que crees un grupo/usuario específico y otorgues a ese grupo permiso para administrar flujos en el compartimiento o inquilino apropiado. Luego podrás generar un token de autenticación para el usuario que haya creado y usarlo en la configuración de su cliente de Kafka.
Los puntos finales privados restringen el acceso a una red virtual en la nube (VCN) específica dentro de su inquilino para que no se pueda acceder a sus flujos a través de Internet. Los puntos finales privados asocian una dirección IP privada dentro de una VCN al grupo de flujos, lo que permite que el tráfico de Streaming evite atravesar Internet. Para crear un punto final privado para Streaming, necesitas acceso a una VCN con una subred privada en el momento de crear el grupo de flujos. Consulta Información sobre puntos finales privados y VCN y subredes para obtener más información.
Puedes escribir el contenido de un flujo directamente en un depósito de Object Storage, normalmente para conservar los datos en el flujo para su almacenamiento a largo plazo. Esto se puede lograr usando Kafka Connect para S3 con Streaming. Para obtener más información, consulta la publicación del blog Publicar en Object Storage desde Oracle Streaming Service.
Puedes asimilar datos desde una tabla en una instancia de Oracle Autonomous Transaction Processing. Para obtener más información, consulta la publicación en el blog Uso de Kafka Connect con Oracle Streaming Service y Autonomous Database.
Puedes usar los SDK de Kafka para producir y consumir mensajes de Streaming, y usar el soporte integrado de Micronaut para Kafka. Para obtener más información, consulta la entrada en el blog Mensajería sencilla con Kafka Support de Micronaut y Oracle Streaming Service.
Para obtener más información, consulta la publicación en el blog Asimilar datos de IoT de brokers MQTT en OCI-Oracle Streaming Service, OCI-Kafka Connect Harness y Oracle Kubernetes Engine.
Oracle GoldenGate for Big Data ya cuenta con la certificación necesaria para integrarse con Streaming. Para obtener más información, consulte Conexión a Oracle Streaming Service en la documentación de Oracle GoldenGate for Big Data.
Debes utilizar Kafka JDBC Sink Connect para transportar directamente datos de transmisión a Oracle Autonomous Data Warehouse.
Streaming utiliza un servicio Pay As You Go (pago por consumo), de modo que solo pagarás por los recursos que uses. Las dimensiones de precios incluyen
Para utilizar particiones por encima de los límites de servicio establecidos por defecto, existe un uso mínimo esperado de 10 GB por hora (solicitudes PUT y GET) por cada 50 particiones. Si tu uso real se sitúa por debajo del uso mínimo esperado, se te cobrará por el uso mínimo esperado.
Consulta la Página de producto Streaming para obtener la información más reciente sobre precios.
El modelo de precios líder del sector de Streaming garantiza que solo pagues cuando utilices el servicio dentro de los límites de servicio establecidos por defecto. Si necesitas particiones que superen los límites de servicio existentes, Streaming prevé un uso mínimo de 10 GB por hora (solicitudes PUT y GET) por cada 50 particiones utilizadas. Si el uso real cae por debajo de esa tasa, se te cobrará por el uso mínimo esperado, es decir, 10 GB x USD 0,025 = USD 0,25 por hora por cada 50 particiones.
Streaming no cobra ningún costo adicional por mover datos dentro y fuera del servicio. Además, los usuarios pueden aprovechar el poder del Service Connector Hub para mover datos hacia y desde Streaming sin servidor sin costo adicional.
Streaming no cuenta actualmente con ninguna opción gratuita.
Identity and Access Management te permite controlar quién tiene acceso a tus recursos en la nube. Para usar los recursos de Oracle Cloud Infrastructure, debes tener el tipo de acceso requerido en una política escrita por un administrador, tanto si usas la consola o la API REST con un SDK, CLI u otras herramientas. La política de acceso se especifica en forma de
Allow <subject> to <verb> <resource-type> in <location> where <conditions>
Los administradores de una tenencia pueden usar la política
Allow group StreamAdmins to manage streams in tenancy
Esta política permite a un grupo específico de StreamAdmins hacer de todo con Streaming, desde crear, actualizar, enumerar hasta eliminar flujos y sus recursos relacionados. Sin embargo, siempre puedes especificar políticas más granulares para que sólo los usuarios seleccionados de un grupo utilicen solamente un subconjunto de actividades que pueden realizar en un flujo determinado. Si es nuevo en materia de políticas, consulte Introducción a las políticas y Políticas comunes. Si deseas profundizar en la redacción de políticas para Streaming, consulta Detalles del servicio Streaming en la referencia de las políticas de IAM.
Puedes aprovisionar un flujo y todos sus componentes asociados, como políticas de IAM, particiones, configuraciones de cifrado, etc., usando Oracle Cloud infrastructure Resource Manager o el proveedor Terraform para Oracle Cloud Infrastructure. Para obtener más información sobre el proveedor de Terraform, consulta Tema sobre Terraform para el servicio Streaming.
Cuando creas un flujo, debes especificar cuántas particiones tiene. El desempeño esperado de tu aplicación puede ayudarte a determinar la cantidad de particiones para tu flujo. Multiplica el tamaño medio de los mensajes por el número máximo de mensajes escritos por segundo para estimar el rendimiento esperado. Dado que una sola partición está limitada a una velocidad de escritura de 1 MB por segundo, un mayor rendimiento requiere particiones adicionales para evitar la limitación. Para ayudarte a administrar los picos de aplicación, recomendamos que asignes particiones ligeramente más altas que tu rendimiento máximo.
Creas particiones cada vez que creas un flujo, tanto en la consola como mediante programación.
Interfaz de usuario de la consola:
Mediante programación:
Crear un flujo
CreateStreamDetails streamDetails =
CreateStreamDetails.builder()
.compartmentId(compartmentId)
.name(streamName)
.partitions(partitions)
.build();
SDK proporciona un ejemplo más detallado.
Streaming gestiona las particiones de forma interna para que tú no tengas que administrarlas. Un usuario no puede eliminar directamente una partición. Cuando eliminas un flujo, se eliminan todas las particiones asociadas a dicho flujo.
El rendimiento de un flujo de Oracle Cloud Infrastructure está definido por una partición. Una partición proporciona 1 MB de entrada de datos por segundo y 2 MB de salida de datos por segundo.
El rendimiento de un flujo de Oracle Cloud Infrastructure se puede escalar agregando más particiones. No hay límites superiores teóricos en el número de particiones que puede contener un flujo. Sin embargo, cada tenencia de Oracle Cloud Infrastructure viene con un límite de particiones predeterminado de 5 para cuentas de tipo Universal Credits. Si necesitas más particiones, podrás solicitar que se aumenten tus límites del servicio.
Sigue estos pasos para solicitar un aumento de los límites del servicio:
A continuación, se muestran algunas prácticas recomendadas para tener en cuenta a la hora de crear un flujo:
Una vez creado el flujo y con el estado "Activo", puedes comenzar a generar mensajes. Puedes producir a un flujo utilizando la consola o mediante API.
Con consola, ve a la sección del servicio Streaming de la consola, ubicada en la pestaña Soluciones y plataforma > Análisis. Si ya has creado flujos, selecciona un flujo en un compartimento y ve a la página "Detalles del flujo". Haz clic en el botón "Producir mensaje de prueba" en la consola. Esto asignará aleatoriamente una clave de partición al mensaje y escribirá en una partición en el flujo. Puedes ver este mensaje en la sección Mensajes recientes haciendo clic en el botón Cargar mensajes.
Con API, puedes utilizar las API de Oracle Cloud Infrastructure Streaming o las API de Kafka para producir en un flujo. El mensaje se publicará en una partición del flujo. Si hay más de una partición, especifica una clave para elegir a qué partición enviar el mensaje. De lo contrario, si no especifica ninguna clave, Streaming te asignará una al generar un UUID y enviará el mensaje a una partición aleatoria. De este modo, te asegura de que los mensajes sin clave se distribuyan uniformemente en todas las particiones. Sin embargo, te recomendamos que especifiques siempre una clave de mensaje para que puedas controlar explícitamente la estrategia de partición de tus datos.
Los ejemplos de cómo producir mensajes a un flujo mediante Streaming SDK están disponibles en la documentación.
Al usar las API de Oracle Cloud Infrastructure para producir un mensaje, la lógica de la creación de particiones estará controlada por Streaming. Esto se conoce como creación de particiones en el lado del servidor. Como usuario, tú eliges a qué partición enviar en función de la clave. La clave se codifica y el valor resultante se usa para determinar el número de particiones al que enviar el mensaje. Los mensajes con la misma clave van a la misma partición. Los mensajes con claves diferentes pueden ir a particiones diferentes o a la misma partición.
Sin embargo, si usas las API de Kafka para producir a un flujo, el cliente de Kafka controla la partición y el particionador en el cliente de Kafka se responsabiliza de la lógica de la creación de particiones. Esto se conoce como creación de particiones en el lado del cliente.
Para garantizar una distribución uniforme de los mensajes, necesitas un valor eficaz para las claves de tus mensajes. Para crearlo, ten en cuenta la selectividad y la cardinalidad de los datos de transmisión.
El objetivo es siempre lograr una alta cardinalidad y una baja selectividad.
Streaming garantiza lecturas y escrituras linealizables dentro de una partición. Si deseas asegurarte de que los mensajes con el mismo valor vayan a la misma partición, debes usar la misma clave para esos mensajes.
Una partición proporciona una velocidad de entrada de datos de 1 MB/seg. y admite hasta 1000 mensajes PUT por segundo. Por lo tanto, si el tamaño del registro es inferior a 1 KB, la velocidad de entrada de datos real de una partición será inferior a 1 MB/seg., limitada por el número máximo de mensajes PUT por segundo. Te recomendamos que produzcas mensajes en lotes por las siguientes razones:
El tamaño de un lote de mensajes no debe superar 1 MB. Si se supera este límite, se activa el mecanismo de aceleración.
Puedes usar fragmentación o enviar el mensaje mediante Oracle Cloud Infrastructure Object Storage.
Cuando un productor produce a una velocidad superior a 1 MB por segundo, la solicitud se acelera y se envía el error 429, demasiadas solicitudes al cliente avisándole de que se están recibiendo demasiadas solicitudes por segundo por partición.
Un consumidor es una entidad que lee mensajes de uno o más flujos. Esta entidad puede existir individualmente o formar parte de un grupo de consumidores. Para consumir mensajes, debes crear un cursor y usarlo posteriormente para leer los mensajes. Un cursor señala una ubicación en un flujo. Esta ubicación puede ser un local o momento específicos en una partición, o bien la ubicación actual de un grupo. Según la ubicación desde la que desee leer, hay varios tipos de cursor disponibles: TRIM_HORIZON
, AT_OFFSET
, AFTER_OFFSET
, AT_TIME
y LATEST.
Para obtener más información, consulta la documentación sobre Consumir mensajes.
El método getLimit( ) de la clase GetMessagesRequest devuelve el número máximo de mensajes. Puedes especificar cualquier valor hasta 10 000. De forma predeterminada, el servicio devuelve todos los mensajes que sea posible. Ten en cuenta el tamaño medio de tus mensajes para evitar superar el rendimiento en el flujo. Los tamaños de lote de GetMessages se basan en el tamaño medio de los mensajes producidos en el flujo específico.
Streaming proporciona semántica de entrega "al menos una vez" a los consumidores. Recomendamos que las aplicaciones de consumidor se encarguen de los duplicados. Por ejemplo, cuando una instancia previamente inactiva del grupo de consumidores se vuelve a unir al grupo y comienza a consumir mensajes que no han sido confirmados por la instancia previamente asignada, es posible que se produzcan duplicados.
Se dice que un consumidor se está retrasando si produce más rápido de lo que puede consumir. Para determinar si su consumidor se está retrasando, puede utilizar la marca de tiempo del mensaje. Si el consumidor se está retrasando, considere la posibilidad de generar un nuevo consumidor para que se haga cargo de algunas de las particiones del primer consumidor. Si se está retrasando en una sola partición, la recuperación no es posible.
Considere las siguientes opciones:
Si deseas saber cuántos mensajes quedan por consumir en una partición determinada, usa un cursor de tipo LATEST
, obtén el desplazamiento del siguiente mensaje publicado, y calcula el delta con el desplazamiento que estás consumiendo actualmente. Dado que no tenemos densidad de desplazamiento, solo podrá obtener una estimación aproximada. Sin embargo, si el productor dejó de producir, no podrá obtener dicha información porque nunca obtendrá el desplazamiento del siguiente mensaje publicado.
Se pueden configurar los consumidores de forma que consuman los mensajes como parte de un grupo. Las particiones de flujo se distribuyen entre los miembros de un grupo para que los mensajes de cualquier partición individual se envíen solamente a un único consumidor. Las asignaciones de partición se reequilibran a medida que los consumidores se unen al grupo o lo abandonan. Para obtener más información, consulta la documentación sobre Grupos de consumidores.
Los grupos de consumidores ofrecen estas ventajas:
Hay un límite de 50 grupos de consumidores por flujo. Los grupos de consumidores son efímeros. Desaparecen cuando no se utilizan durante el período de retención del flujo.
Los siguientes componentes de Streaming tienen tiempos de espera:
El reequilibrado es el proceso en el que un grupo de instancias —que pertenecen al mismo grupo de consumidores— se coordina para poseer un conjunto de particiones mutuamente excluyentes que pertenecen a un flujo concreto. Cuando una operación de reequilibrado se completa correctamente para un grupo de consumidores, cada partición del flujo es propiedad de una o más instancias de consumidores dentro del grupo.
Cuando una instancia de un grupo de consumidores se vuelve inactiva porque no envía ningún latido durante más de 30 segundos o el proceso finaliza, se activa una actividad de reequilibrado dentro del grupo de consumidores. Esto se hace para manejar las particiones previamente consumidas por la instancia inactiva y reasignarla a una instancia activa. Del mismo modo cuando una instancia de un grupo de consumidores previamente inactivo se une al grupo, se activa un reequilibrado para asignar una partición desde la que comenzar a consumir. El servicio Streaming no ofrece ninguna garantía para reasignar la instancia a la misma partición cuando se vuelve a unir al grupo.
Para recuperarse de un error, debes almacenar el desplazamiento del último mensaje procesado para cada partición de forma que puedas empezar a consumir desde ese mensaje si necesitas reiniciar el consumidor.
Nota: No almacenes el cursor; los cursores caducan al cabo de 5 minutos.
No proporcionamos ninguna guía para almacenar el desplazamiento del último mensaje que haya procesado, por lo que puedes usar el método que desees. Por ejemplo, puedes almacenar el cursor en otro flujo, un archivo en una máquina virtual, o bien un depósito de Object Storage. Cuando se reinicia el consumidor, lee el desplazamiento del último mensaje procesado, crea un cursor de tipo AFTER_OFFSET
y especifica el desplazamiento que acabas de recibir.
El servicio Streaming proporciona un punto final Kafka que pueden utilizar sus aplicaciones existentes basadas en Apache Kafka. Todo lo necesario es un cambio de configuración para tener una experiencia Kafka completamente administrada. La compatibilidad de Kafka con Streaming ofrece una alternativa a la ejecución de su propio clúster Kafka. Streaming es compatible con Apache Kafka 1.0 y las versiones de cliente más recientes y funciona con sus aplicaciones, herramientas y marcos existentes de Kafka.
Los clientes con aplicaciones Kafka existentes podrán migrar a Streaming simplemente cambiando los siguientes parámetros de su archivo de configuración Kafka.
security.protocol: SASL_SSL
sasl.mechanism: PLAIN
sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="{username}" password="{pwd}";
bootstrap.servers: kafka.streaming.{region}.com:9092
# Application settings
topicName: [streamOcid]
Para utilizar sus conectores Kafka con Streaming, crea una configuración de Kafka Connect utilizando la consola o la interfaz de línea de comandos (CLI). La API de Streaming llama a estas configuraciones arneses. Las configuraciones de Kafka Connect creadas en un compartimento determinado funcionan solo para los flujos del mismo compartimento. Puedes utilizar múltiples conectores Kafka con la misma configuración de Kafka Connect. En aquellos casos en los que sea necesario producir o consumir flujos en compartimentos separados, o cuando se requiera más capacidad para evitar alcanzar los límites del acelerador en la configuración de Kafka Connect (por ejemplo, demasiados conectores o conectores con demasiados trabajadores), tú puedes crear más configuraciones de Kafka Connector.
Gracias a la compatibilidad de Kafka Connect con Streaming, puede aprovechar los muchos conectores existentes propios y de terceros para mover datos desde sus fuentes a sus destinos. Los conectores Kafka para productos Oracle incluyen:
Para obtener una lista completa de conectores de fuente y conectores receptores Kafka de terceros, consulta el centro oficial de Confluent Kafka.
Streaming está completamente integrado con Oracle Cloud Infrastructure Monitoring. En la consola, selecciona el flujo que desees supervisar. En la página Detalles del flujo, ve a la sección Recursos y haz clic en Producir gráficos de seguimiento para supervisar las solicitudes de los productores, o bien haz clic en Consumir gráficos de seguimiento para supervisar las métricas del lado del consumidor. Las métricas están disponibles a nivel de flujo y no a nivel de partición. Para obtener una descripción de las métricas de Streaming compatibles, consulta la documentación.
Cada métrica disponible en la consola proporciona las siguientes estadísticas:
Estas estadísticas se ofrecen para los siguientes intervalos de tiempo:
Para los productores, considera la posibilidad de configurar alarmas en las siguientes métricas:
Para los consumidores, considera la posibilidad de configurar las mismas alarmas basándose en las siguientes métricas:
Un flujo está en buen estado cuando está en estado Activo. Si puede producir en su flujo, y si la respuesta obtenida es correcta, significa que el flujo está en buen estado. Una vez producidos los datos en el flujo, los consumidores podrán acceder a ellos durante el período de retención configurado. Si las llamadas a la API de Get Messages devuelven niveles elevados de errores internos del servidor, significa que el servicio no está en buen estado.
Un flujo en buen estado también tiene métricas en buen estado:
La aceleración indica que el flujo es incapaz de manejar nuevas lecturas o escrituras. El mecanismo de aceleración se activa cuando se superan los siguientes umbrales:
Los detalles sobre los errores de la API están en la documentación.