Pub/Sub에 메시지를 게시하기 위해 게시자 애플리케이션은 메시지를 만들고 주제에 전송합니다.
이 문서에서는 주제 및 메시지 개념을 비롯한 게시 워크플로에 관한 개요를 제공합니다.
주제 정보
Pub/Sub 주제는 메시지 피드를 나타내는 명명된 리소스입니다. 게시자가 메시지를 전송하면 특정 주제를 타겟팅합니다. Pub/Sub 서비스는 이 주제 이름을 사용하여 주제에 연결된 모든 구독으로 메시지를 라우팅합니다. 구독에 구독자가 여러 명인 경우 구독에 있는 구독자 중 한 명만 메시지를 수신합니다.
게시자는 구독자 수를 알 필요가 없습니다. 메시지 전송과 메시지 수신 간의 문제를 분리하여 주제에 집중합니다.
Pub/Sub는 표준 주제와 가져오기 주제 등 두 가지 종류의 주제를 지원합니다.
주제 속성
주제를 만들거나 업데이트할 때는 주제 속성을 지정할 수 있습니다.
주제 속성에 관한 자세한 내용은 주제 속성을 참조하세요.
가져오기 주제 정보
가져오기 주제를 사용하면 Pub/Sub가 다른 소스의 스트리밍 데이터를 수집하고 데이터를 주제에 전송하는 게시자 애플리케이션 역할을 할 수 있습니다. 콘솔, Google Cloud CLI, REST 호출, 클라이언트 라이브러리를 사용하여 주제에 대해 수집을 사용 설정할 수 있습니다. Google Cloud는 가져오기 주제를 관리하는 일환으로 수집 파이프라인의 모니터링 및 확장을 제공합니다.
가져오기 주제가 없으면 데이터 소스에서 Pub/Sub로 데이터를 스트리밍하려면 추가 서비스가 필요합니다. 이 추가 서비스는 원본 소스에서 데이터를 가져와 Pub/Sub에 게시합니다. 추가 서비스는 Apache Spark와 같은 스트리밍 엔진 또는 커스텀 작성 서비스일 수 있습니다. 또한 이 서비스를 구성, 배포, 실행, 확장, 모니터링해야 합니다.
다음은 가져오기 주제와 관련된 중요한 정보 목록입니다.
표준 주제와 마찬가지로 가져오기 주제에 수동으로 게시할 수 있습니다.
가져오기 주제에는 하나의 수집 소스만 연결할 수 있습니다.
스트리밍 데이터에 대한 가져오기 주제를 권장합니다. 스트리밍 데이터 수집 대신 BigQuery로 일괄 데이터 수집을 고려하려는 경우 BigQuery Data Transfer Service(BQ DTS)를 사용할 수 있습니다. Cloud Storage로 데이터를 수집하려면 Storage Transfer Service(STS)를 사용하는 것이 좋습니다.
Pub/Sub는 가져오기 주제에 대해 다음 소스를 지원합니다.
주제의 데이터 복제
Pub/Sub 주제는 영역 3개를 사용하여 데이터를 저장합니다. 이 서비스는 최소 2개 이상의 영역에 대한 동기식 복제와 추가적인 세 번째 영역에 대한 최선의 복제를 지원합니다. Pub/Sub 복제는 리전 하나 내에만 있습니다.
메시지 정보
Pub/Sub 메시지는 서비스를 통과하는 데이터입니다.
메시지는 메시지 데이터 및 메타데이터가 있는 필드로 구성됩니다. 다음 중 하나를 메시지에 지정해야 합니다.
메시지 데이터: 메시지의 핵심 콘텐츠이며 모든 텍스트 또는 바이너리 데이터일 수 있습니다. 게시자와 구독자 간에 통신하려는 실제 정보를 나타냅니다. REST API를 직접 사용하는 경우 메시지 데이터는 base64로 인코딩되어야 합니다. 메시지 게시 섹션의 REST 탭에 있는 예시를 참조하세요.
순서 키: 메시지의 순서를 지정해야 하는 항목을 나타내는 식별자입니다. 순서 키가 동일한 메시지는 게시된 순서대로 구독자에게 전송됩니다. 순서 키는 순서가 지정된 메시지의 전송을 원하는 경우에만 필요합니다. 순서 키에 대한 자세한 내용은 메시지 순서 지정을 참고하세요.
속성: 메시지에 관한 추가 컨텍스트와 정보를 제공하는 선택적 키-값 쌍입니다. 메시지 콘텐츠의 라우팅, 필터링 또는 보강에 사용할 수 있습니다. 예를 들어 타임스탬프나 트랜잭션 ID와 같은 속성을 추가할 수 있습니다. 메시지 게시에 사용되는 속성에 대해 자세히 알아보려면 속성을 사용하여 메시지 게시를 참고하세요.
Pub/Sub 서비스는 메시지에 다음 필드를 추가합니다.
- 주제에 고유한 메시지 ID
- Pub/Sub 서비스가 메시지를 수신하는 시점의 타임스탬프
예를 들어 JSON 형식의 메시지는 다음과 같습니다.
{
"data": "This is the core message content.",
"attributes": {
"category": "notification",
"user_id": "12345",
"priority": "medium"
},
"orderingKey": "12345"
}
메시지 게시 워크플로
Pub/Sub에 메시지를 게시하기 위해 게시자 애플리케이션은 메시지를 만들고 주제에 전송합니다.
- 사용자 데이터를 포함하는 메시지를 생성합니다.
- 선택적인 게시 속성을 선택합니다.
- 지정된 주제에 메시지를 게시하려면 Pub/Sub 서버에 요청을 보냅니다.
Pub/Sub 서비스는 메시지를 수신하고 다음과 같이 처리합니다.
메시지가 배포를 위해 저장됩니다.
내구성과 고가용성을 위해 메시지가 여러 영역에 복제됩니다.
Pub/Sub는 메시지 주제와 일치하는 구독이 있는 구독자를 식별하고 각 구독자에 메시지 사본을 전달합니다.
Pub/Sub에서는 기존 구독자에 최소 1회 메시지 전송 및 최선의 순서 지정을 제공합니다.
Pub/Sub 시스템에 대한 자세한 내용은 Pub/Sub 서비스 개요를 참고하세요.
Pub/Sub 작동 방식에 관한 자세한 내용은 Pub/Sub의 아키텍처 개요를 참고하세요.