La ordenación de mensajes es una función de Pub/Sub que te permite recibir mensajes en tus clientes suscriptores en el orden en el que los publicaron los clientes editores.
Por ejemplo, supongamos que un cliente editor de una región publica los mensajes 1, 2 y 3 en ese orden. Con la ordenación de mensajes, el cliente suscriptor recibe los mensajes publicados en el mismo orden. Para que se entreguen en orden, el cliente del editor debe publicar los mensajes en la misma región. Sin embargo, los suscriptores pueden conectarse a cualquier región y la garantía de pedido se mantiene.
El orden de los mensajes es una función útil en situaciones como la captura de cambios en bases de datos, el seguimiento de sesiones de usuarios y las aplicaciones de streaming en las que es importante conservar la cronología de los eventos.
En esta página se explica el concepto de orden de los mensajes y cómo configurar los clientes de suscriptor para que reciban los mensajes en orden. Para configurar sus clientes editor para ordenar los mensajes, consulte Usar claves de orden para publicar un mensaje.
Descripción general de la ordenación de mensajes
El orden en Pub/Sub se determina de la siguiente manera:
Clave de orden: es una cadena que se usa en los metadatos de los mensajes de Pub/Sub y representa la entidad para la que se deben ordenar los mensajes. La clave de ordenación puede tener una longitud de hasta 1 KB. Para recibir un conjunto de mensajes ordenados en una región, debes publicar todos los mensajes con la misma clave de ordenación en la misma región. Algunos ejemplos de claves de ordenación son los IDs de cliente y la clave principal de una fila de una base de datos.
El rendimiento de publicación de cada clave de ordenación está limitado a 1 MBps. El rendimiento de todas las claves de ordenación de un tema está limitado a la cuota disponible en una región de publicación. Este límite se puede aumentar a muchas unidades de GBps.
Una clave de ordenación no es equivalente a una partición en un sistema de mensajería basado en particiones, ya que se espera que las claves de ordenación tengan una cardinalidad mucho mayor que las particiones.
Habilitar pedidos de mensajes: se trata de un ajuste de suscripción. Cuando se habilita la ordenación de mensajes en una suscripción, los clientes suscriptores reciben los mensajes publicados en la misma región con la misma clave de ordenación en el orden en el que los ha recibido el servicio. Debes habilitar este ajuste en la suscripción.
Supongamos que tienes dos suscripciones, A y B, asociadas al mismo tema T. La suscripción A tiene habilitada la ordenación de mensajes, mientras que la suscripción B no. En esta arquitectura, las suscripciones A y B reciben el mismo conjunto de mensajes del tema T. Si publicas mensajes con claves de ordenación en la misma región, la suscripción A recibe los mensajes en el orden en el que se publicaron. En cambio, la suscripción B recibe los mensajes sin ningún orden concreto.
Por lo general, si tu solución requiere que los clientes editores envíen mensajes ordenados y no ordenados, crea temas independientes, uno para los mensajes ordenados y otro para los no ordenados.
Consideraciones al usar la mensajería ordenada
La siguiente lista contiene información importante sobre el comportamiento de los mensajes ordenados en Pub/Sub:
Ordenación con la misma clave: los mensajes publicados con la misma clave de ordenación se reciben en el orden en el que se publicaron. Supongamos que, para la clave de ordenación A, publicas los mensajes 1, 2 y 3. Si el orden está habilitado, se espera que el pedido 1 se entregue antes que el 2 y que el 2 se entregue antes que el 3.