Cloud Tasks와 Pub/Sub 모두 메시지 전달과 비동기 통합의 구현에 사용될 수 있습니다. 둘의 개념은 유사하지만 각각 서로 다른 사용 사례에 맞게 설계되었습니다. 이 페이지는 사용 사례에 적합한 제품을 선택하는 데 도움이 됩니다.
주요 차이점
Pub/Sub와 Cloud Tasks의 핵심적인 차이점은 암시적 호출과 명시적 호출에 관한 개념 차이입니다.
Pub/Sub는 이벤트 게시자와 해당 이벤트의 영향을 받는 구독자를 분리합니다. 이는 게시자가 구독자에 대한 정보가 없어도 된다는 뜻입니다. Pub/Sub는 메시지 전달 보장을 위한 경우가 아닌 한, 메시지 전달을 제어하는 기능을 게시자에게 제공하지 않습니다. 이러한 방식으로 Pub/Sub는 암시적 호출을 지원합니다. 즉 게시자는 이벤트를 게시하여 구독자의 실행을 암시적으로 유도합니다.
이에 반해 Cloud Tasks는 게시자가 실행에 대한 완전한 제어 기능을 유지하는 명시적 호출을 지향합니다. 특히 게시자는 각 메시지가 전달될 엔드포인트를 지정합니다.
일반적으로 Cloud Tasks는 태스크 생성자가 특정 웹훅 또는 리모트 프로시져 콜의 실행 시점을 연기하거나 제어해야 하는 사용 사례에 적합합니다. 반면 Pub/Sub는 실행 제어 권한을 일정 수준 포기할 수 있는 보다 일반적인 이벤트 데이터 수집 및 배포 패턴에 적합합니다.
자세한 기능 비교
기능 | Cloud Tasks | Cloud Pub/Sub |
---|---|---|
웹훅을 통해 내보내기 | Y | Y |
한 번 이상의 전송 보장 | Y | 예 |
재시도 구성 가능 | 예 | Y |
작업 생성 중복 삭제 | Y | N |
예약된 게재 | Y | 아니요 |
주문된 전송 | 아니요. 큐에 추가된 태스크 순서는 최선의 방식으로 유지됩니다. | 예(순서 키 포함) |
명시적인 속도 제어 | 예 | 구독자 클라이언트가 흐름 제어를 구현할 수 있음 |
API를 통해 가져오기 | N | Y |
일괄 삽입 | N | Y |
메시지당 여러 핸들러/구독자 | N | Y |
작업/메시지 보관 | 30일 | 최대 31일 |
작업/메시지의 최대 크기 | 1MB | 10MB |
최대 전달 속도 | 큐당 500qps | 상한 없음 |
사용 가능 지역 범위 | 리전 | 전체 |
핸들러/구독자 내보내기 최대 처리 시간 | 30분(HTTP) 10분(App Engine 표준 자동 확장) 24시간(App Engine 표준 수동 또는 기본 확장) 60분(App Engine 가변형) |
내보내기 작업의 경우 10분 |
프로젝트당 큐/구독 수 | 프로젝트당 1,000개, 할당량 증가 요청 시 그 이상 가능 | 프로젝트당 10,000개 |