En esta página, se explica cómo recibir mensajes en orden.
Si deseas obtener más información sobre cómo recibir mensajes, consulta la descripción general de los suscriptores.
Recibe mensajes en orden
Si los mensajes tienen la misma clave de ordenamiento y están en la misma región, puedes habilitar el orden de los mensajes y recibirlos en el orden en que el servicio Pub/Sub las recibe.
Pub/Sub entrega cada mensaje al menos una vez, por lo que el servicio de Pub/Sub podría volver a entregarlos. Cuando recibes mensajes en orden y el servicio de Pub/Sub vuelve a entregar un mensaje con una clave de ordenamiento, Pub/Sub mantiene el orden y vuelve a entregar los mensajes posteriores con la misma clave de ordenamiento. El servicio Pub/Sub vuelve a enviar estos mensajes en el orden en que los recibió de forma original.
Cuando el servicio de Pub/Sub vuelve a enviar un mensaje con una clave de ordenamiento, el servicio de Pub/Sub también vuelve a entregar todos los mensajes posteriores con la misma clave de ordenamiento, incluidos los mensajes con confirmación de recepción. Vuelve a confirmar la recepción de estos mensajes.
Habilita el ordenamiento de mensajes
Para recibir los mensajes en orden, configura la propiedad de ordenamiento de mensajes de la suscripción de la que recibes mensajes. Recibir mensajes en orden puede aumentar la latencia.
Puedes configurar la propiedad de orden de los mensajes cuando creas una suscripción con Cloud Console, la herramienta de línea de comandos de gcloud
o la API de Pub/Sub.
Console
Para crear una suscripción con la propiedad de ordenamiento de mensajes, sigue estos pasos:
En Cloud Console, ve a la página Suscripciones.
Haz clic en Crear suscripción.
Ingresa un ID de suscripción.
Elige un tema para recibir mensajes de él.
En la sección Ordenamiento de mensajes, selecciona Ordenar mensajes con una clave de ordenamiento.
Haga clic en Crear.
gcloud
Para crear una suscripción con la propiedad de ordenamiento de mensajes, usa el comando gcloud pubsub subscriptions create
y la marca --enable-message-ordering
:
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --enable-message-ordering
Reemplaza SUBSCRIPTION_ID por el ID de la suscripción.
Si la solicitud es exitosa, la línea de comandos muestra una confirmación:
Created subscription [SUBSCRIPTION_ID].
REST
Para crear una suscripción con la propiedad de ordenamiento de mensajes, envía una solicitud PUT
como la siguiente:
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth application-default print-access-token)
Reemplaza lo siguiente:
- PROJECT_ID: El ID del proyecto con el tema
- SUBSCRIPTION_ID: El ID de la suscripción
Especifica lo siguiente en el cuerpo de la solicitud:
{ "topic": TOPIC_ID, "enableMessageOrdering": true, }
Reemplaza TOPIC_ID por el ID del tema que deseas adjuntar a la suscripción.
Si la solicitud se realiza de forma correcta, la respuesta es la suscripción en formato JSON:
{ "name": projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID, "topic": projects/PROJECT_ID/topics/TOPIC_ID, "enableMessageOrdering": true, }
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C++.
C#
Antes de probar esta muestra, sigue las instrucciones de configuración de C# en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para C#.
Go
Antes de probar esta muestra, sigue las instrucciones de configuración de Go en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Go.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Java.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Python.
Ruby
Antes de probar esta muestra, sigue las instrucciones de configuración de Ruby en la guía de inicio rápido sobre el uso de bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Ruby.
Una vez que se configura la propiedad de ordenamiento de mensajes, el servicio de Pub/Sub entrega mensajes con la misma clave de ordenamiento en el orden en que el servicio de Pub/Sub recibe los mensajes. Por ejemplo, si un publicador envía dos mensajes con la misma clave de ordenamiento, el servicio de Pub/Sub entrega primero el mensaje más antiguo.