이 페이지에서는 메시지를 순서대로 수신하는 방법에 대해 설명합니다.
메시지 수신에 대한 자세한 내용은 구독자 개요를 참조하세요.
순서대로 메시지 수신
메시지에 동일한 순서 키가 있으면서 리전이 동일한 경우 Pub/Sub 서비스에서 메시지를 수신하는 순서대로 메시지 순서를 사용할 수 있습니다.
Pub/Sub는 각 메시지를 최소 한 번은 전송하므로 Pub/Sub 서비스에서 메시지를 다시 전송할 수 있습니다. 순서대로 메시지를 수신하는 경우 Pub/Sub 서비스에서 순서 키가 포함된 메시지를 다시 전송할 때, Pub/Sub는 동일한 순서 키가 포함된 후속 메시지를 다시 전송하여 순서를 유지합니다. Pub/Sub 서비스는 최초에 받은 순서대로 이러한 메시지를 다시 전송합니다.
Pub/Sub 서비스에서 순서 키가 포함된 메시지를 다시 전송하는 경우 Pub/Sub 서비스는 확인된 메시지를 포함하여 동일한 순서 키로 모든 후속 메시지도 다시 전송합니다. 이 메시지를 다시 확인해 주세요. 그러나 이전 메시지가 확인되지 않은 상태에서 후속 메시지가 전송된다는 보장은 없습니다.
메시지 순서 사용 설정
메시지를 순서대로 받으려면 메시지를 수신하는 구독에서 메시지 순서 속성을 설정하세요. 메시지를 순서대로 수신하면 지연 시간이 늘어날 수 있습니다.
Cloud Console, gcloud
명령줄 도구 또는 Pub/Sub API를 사용하여 구독을 만들 때 메시지 순서 속성을 설정할 수 있습니다.
Console
메시지 순서 속성을 설정한 구독을 만들려면 다음 단계를 따르세요.
Cloud Console에서 구독 페이지로 이동합니다.
구독 만들기를 클릭합니다.
구독 ID를 입력합니다.
메시지를 받을 주제를 선택합니다.
메시지 순서 섹션에서 순서 키로 메시지 순서 지정을 선택합니다.
만들기를 클릭합니다.
gcloud
메시지 순서 속성을 설정한 구독을 만들려면 gcloud pubsub subscriptions create
명령어와 --enable-message-ordering
플래그를 사용합니다.
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --enable-message-ordering
SUBSCRIPTION_ID를 구독 ID로 바꿉니다.
요청이 성공하면 명령줄에 확인 메시지가 표시됩니다.
Created subscription [SUBSCRIPTION_ID].
REST
메시지 순서 속성을 설정하여 구독을 만들려면 다음과 같이 PUT
요청을 보냅니다.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth application-default print-access-token)
다음을 바꿉니다.
- PROJECT_ID: 주제가 있는 프로젝트의 프로젝트 ID
- SUBSCRIPTION_ID: 구독의 ID
요청 본문에서 다음을 지정합니다.
{ "topic": TOPIC_ID, "enableMessageOrdering": true, }
TOPIC_ID를 구독에 연결할 주제의 ID로 바꿉니다.
요청이 성공하는 경우 응답은 JSON 형식의 구독입니다.
{ "name": projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID, "topic": projects/PROJECT_ID/topics/TOPIC_ID, "enableMessageOrdering": true, }
C++
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 C++ 설정 안내를 따르세요. 자세한 내용은 Pub/Sub C++ API 참조 문서를 확인하세요.
C#
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 C# 설정 안내를 따르세요. 자세한 내용은 Pub/Sub C# API 참조 문서를 확인하세요.
Go
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Go API 참조 문서를 참조하세요.
자바
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 자바 설정 안내를 따르세요. 자세한 내용은 Pub/Sub 자바 API 참조 문서를 참조하세요.
Node.js
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Node.js 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Node.js API 참조 문서를 참조하세요.
Python
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Python 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Python API 참조 문서를 참조하세요.
Ruby
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Ruby 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Ruby API 참조 문서를 참조하세요.
메시지 순서 속성이 설정되면 Pub/Sub 서비스는 Pub/Sub 서비스에서 메시지를 수신하는 순서대로 동일한 순서 키가 포함된 메시지를 전송합니다. 예를 들어 게시자가 순서 키가 동일한 2개의 메시지를 보내면 Pub/Sub 서비스에서는 오래된 메시지를 먼저 전송합니다.
메시지 순서를 사용 설정할 수 없으며 데드 레터 주제를 사용할 수 없습니다. Pub/Sub는 최선을 다해 메시지를 데드 레터 주제로 전달하여 Pub/Sub가 메시지를 순서대로 다시 전송하는 것을 방지할 수 있습니다.