2016-10-25 3 views
0

PubSub 항목을 사용하여 데이터를 처리하기위한 대기열을 구현하고 있습니다. 내 계획은 밀어 넣기 구독을 사용하여 게시 된 데이터를 즉시 처리하도록하는 것입니다.Push PubSub Subscription은 한 번 또는 주기적으로 생성해야합니까?

풀 서브를 사용할 때마다 다음 풀주기에 활성 구독이 있음을 보장하기 위해 모든 실행에서 끌어 오기 구독을 다시 만들려고하는 많은 코드 패턴을 보았습니다.

푸시 구독을 사용하여 동일한 작업을 수행해야합니까? IMHO 아니오,하지만 언젠가는 푸시 구독이 영원하지 않으며 다음에 메시지를 게시 할 때 활성 푸시 구독을 보장하기 위해 모니터링해야합니다.

푸시 구독 작성을위한 좋은 디자인 패턴은 무엇입니까? PubSub Admin 인터페이스를 사용하여 푸시 구독을 만들거나 프로그래밍 방식으로 만들거나 다시 만들면됩니까?

답변

2

구독자가 시작시 코드를 다시 만드는 경향이있는 이유는 구독자가 30 일 동안 존재를 감지하지 못하면 구독이 가비지 수집된다는 사실에 기인합니다 (구독자가 없을 경우 메시지가 영구적입니까 또는 영구적입니까? "Google Cloud Pub/Sub FAQ 또한 끌어 오기 구독이 명시 적으로 삭제 된 경우 코드에서 시작할 때 다시 만들면 끌어 오기 요청이 실패하지 않습니다. 풀 구독자의 경우 현재 상태를 감지하는 개념은 매우 간단합니다. 당겨 받기 호출을 확인하십시오.

푸시 구독자의 경우 조금 더 모호합니다. 구독을 삭제하면 구독자 자체가 삭제되었음을 알 수 없으므로 단순히 메시지 수신을 중단합니다. 구독을 수동으로 삭제하지 않고 30 일마다 적어도 하나의 메시지를 보낼 예정이라면 시작할 때 구독을 만들지 않아도되고 Pub/Sub Admin Interface를 통해 한 번만 만들 수 있습니다.

알림을 받고 싶다면 create a policy in Stackdriver에 일정 기간 동안 푸시 된 구독 메시지가 없을 때이를 알릴 수 있습니다 (일정한 스트림 메시지를 게시한다고 가정). "Metric Absence"에 대한 조건을 추가하고 리소스 유형, 가입 이름 및 "Push Request Count"를 트리거 메트릭으로 선택하십시오.