이 페이지에서는 모든 Pub/Sub 구독 유형에 공통적인 속성을 설명합니다. 구독을 만들거나 업데이트할 때 이러한 속성을 설정할 수 있습니다.
메시지 보관 기간
메시지 보관 기간은 Pub/Sub가 게시 후 메시지를 보관하는 기간을 지정합니다. 메시지 보관 기간이 지나면 메시지의 확인 상태에 관계없이 Pub/Sub가 메시지를 삭제할 수 있습니다. 메시지 보관 기간 동안 확인된 메시지를 보관하려면 메시지 다시보기 및 삭제를 참조하세요.
다음은 메시지 보관 기간 옵션의 값입니다.
- 기본값 = 7일
- 최솟값 = 10분
- 최댓값 = 31일
확인되지 않은 메시지는 유휴 구독, 백업 필요, 느린 처리로 인해 발생할 수 있습니다. 24시간 이내에 메시지를 처리할 수 있으면 추가 요금은 발생하지 않습니다. 다음과 같이 이러한 시나리오를 관리하여 새로운 요금이 청구되지 않도록 할 수 있습니다.
유휴 구독. 구독 메시지 보관 요금이 부과되지 않도록 유휴 구독을 삭제합니다.
백업 스토리지. 백업 스토리지로 구독 보관을 사용하는 경우 주제 메시지 보관 또는 확인된 메시지 보관과 같은 다른 스토리지 옵션으로 전환할 수 있습니다. 주제 메시지 보관은 주제 수준에서 메시지를 한 번만 저장하며 필요할 때 모든 구독을 사용할 수 있도록 유지합니다.
처리 지연. 가능한 경우 구독자를 더 추가하여 하루 안에 메시지를 처리합니다.
확인한 메시지 보관
메시지 보관 기간을 지정하면 확인된 메시지를 보관할지 여부도 지정할 수 있습니다.
확인된 메시지 보관 옵션을 사용하면 지정된 메시지 보관 기간 동안 확인된 메시지를 보관할 수 있습니다. 이 옵션을 사용하면 메시지 스토리지 수수료가 증가합니다. 자세한 내용은 스토리지 비용을 참조하세요.
만료 기간
만료 기간 옵션을 사용하면 구독의 만료 기간을 연장할 수 있습니다.
구독자 활동 또는 구독 속성 변경이 없는 구독이 만료됩니다. Pub/Sub에서 구독자 활동이 감지되거나 구독 속성을 업데이트할 경우 구독 삭제 시계가 다시 시작됩니다. 구독자 활동 예시에는 연결 열기, 활성 풀 또는 성공한 push가 있습니다.
만료 기간을 지정하는 경우 값이 메시지 보관 기간 옵션에 지정된 메시지 보관 기간 이상이어야 합니다.
다음은 만료 기간 옵션의 값입니다.
- 기본값 = 31일
- 최솟값 = 1일
구독이 만료되지 않게 하려면 만료 기간을 never expire로 설정하세요.
확인 기한
확인 기한 옵션은 확인되지 않은 메시지가 다시 전송되는 초기 기한을 지정합니다. 후속 ModifyAckDeadline 요청을 전송하여 메시지별로 확인 기한을 연장할 수 있습니다.
다음은 확인 기한 옵션의 값입니다.
- 기본값 = 10초
- 최솟값 = 10초
- 최댓값 = 600초
경우에 따라 Pub/Sub 클라이언트 라이브러리에서 전달 속도를 제어하고 확인 기한을 동적으로 수정할 수 있습니다.
이렇게 하면 설정한 확인 기한 전에 메시지가 다시 전송될 수 있습니다. 이 동작을 재정의하려면 minDurationPerAckExtension 및 maxDurationPerAckExtension을 사용합니다. 이러한 값을 사용하는 방법에 대한 자세한 내용은 클라이언트 라이브러리의 1회만 전송 지원을 참조하세요.
단일 메시지 변환 (SMT)
SMT를 사용하면 Pub/Sub 내에서 직접 메시지 속성과 데이터를 가볍게 수정할 수 있습니다. 이 기능을 사용하면 메시지가 구독자 클라이언트에 전달되기 전에 데이터 정리, 필터링 또는 형식 변환을 할 수 있습니다.
자세한 내용은 SMT 개요 및 SMT로 구독 만들기를 참고하세요.
구독 필터
구독 필터 옵션을 사용하여 필터링 표현식이 포함된 문자열을 지정하세요. 구독에 필터가 있는 경우 구독은 필터와 일치하는 메시지만 전송합니다. Pub/Sub 서비스는 필터와 일치하지 않는 메시지를 자동으로 확인합니다.
메시지의 데이터가 아닌 속성에 따라 메시지를 필터링할 수 있습니다.
지정하지 않으면 구독은 메시지를 필터링하지 않으며 구독자가 모든 메시지를 수신합니다.
필터를 적용한 후에는 필터를 변경하거나 삭제할 수 없습니다.
필터가 포함된 구독에서 메시지를 받으면 Pub/Sub가 자동으로 확인하는 메시지에 대한 이그레스 요금이 발생하지 않습니다. 이러한 메시지에는 메시지 전송 요금 및 탐색 관련 스토리지 요금이 부과됩니다.
자세한 내용은 구독에서 메시지 필터링을 참조하세요.
메시지 순서
기본적으로 Pub/Sub는 메시지가 게시된 순서대로 메시지를 전송하지 않을 수 있습니다. 구독에 메시지 순서가 사용 설정되어 있으면 동일한 리전에서 동일한 순서 키로 전송된 모든 메시지가 게시된 순서대로 수신됩니다.
메시지를 순서대로 수신하려면 게시자가 순서 키를 설정해야 합니다. 순서 키가 없는 메시지는 순서대로 수신되지 않을 수 있습니다.
순서가 지정된 전송을 사용하는 경우 이전 메시지에 대한 확인이 처리될 때까지 이후 메시지 확인이 처리되지 않습니다. 자세한 내용은 메시지 순서 지정을 참고하세요.
데드 레터 주제
설정된 전송 시도 횟수 후에 메시지를 전송할 수 없거나 구독자가 메시지를 확인할 수 없는 경우 Pub/Sub는 구성된 데드 레터 주제에 메시지를 다시 게시할 수 있습니다.
데드 레터 주제를 설정한 경우 최대 전송 시도 횟수를 지정할 수도 있습니다. 기본값은 전송 시도 횟수 5회입니다. 최대 시도 횟수는 5~100 사이의 숫자로 설정할 수 있습니다.
데드 레터 주제가 구독과 다른 프로젝트에 있으면 데드 레터 주제와 함께 프로젝트 ID를 지정해야 합니다.
자세한 내용은 데드 레터 주제를 참고하세요.
재시도 정책
확인 기한이 만료되거나 구독자가 부정 확인으로 응답하는 경우, Pub/Sub가 메시지를 다시 전송할 수 있습니다. 이러한 재전송 시도를 구독 재시도 정책이라고 합니다.
기본적으로 구독의 재시도 정책은 즉시 재시도를 사용하도록 설정됩니다. 이 옵션을 사용하면 확인 기한이 만료되거나 구독자가 부정 확인으로 응답할 때 Pub/Sub가 메시지를 다시 전송합니다.
또한 값을 지수 백오프 지연 후 재시도로 설정할 수도 있습니다. 이 경우 최대 및 최소 백오프 값을 지정해야 합니다.
다음은 최대 및 최소 백오프 값의 값을 설정하는 몇 가지 가이드라인입니다.
백오프 기간의 최댓값을 설정하는 경우 최소 백오프 기간의 기본값은 10초입니다.
백오프 기간의 최솟값을 설정할 경우 최대 백오프 기간의 기본값은 600초입니다.
지정할 수 있는 가장 긴 백오프 기간은 600초입니다.
재시도 정책 및 일괄 메시지
메시지가 배치에 있으면 Pub/Sub는 다음 중 하나가 발생할 때 지수 백오프를 시작합니다.
구독자가 배치에 있는 모든 메시지에 대해 부정 확인을 전송한 경우
확인 기한이 만료된 경우
재시도 정책 및 푸시 구독
push 구독에서 메시지를 받은 경우 Pub/Sub는 지수 백오프 기간 대신 push 백오프 이후에 메시지를 다시 전송할 수 있습니다. push 백오프가 지수 백오프 기간보다 긴 경우, Pub/Sub는 push 백오프 이후에 미확인 메시지를 다시 전송합니다.