이 문서에서는 주제에 게시된 메시지에서 동시 실행 제어를 사용하는 방법에 대해 설명합니다.
동시 실행 제어는 클라이언트 라이브러리 게시 메시지에 사용되는 백그라운드(I/O) 스레드의 기본 개수를 재정의하는 데 도움이 됩니다. 이렇게 하면 게시자 클라이언트가 병렬로 메시지를 전송할 수 있습니다.
동시 실행 제어는 Pub/Sub 상위 수준 클라이언트 라이브러리에서 사용할 수 있는 기능입니다. 하위 수준 라이브러리를 사용할 때 자체 동시 실행 제어를 구현할 수도 있습니다.
동시 실행 제어 지원은 클라이언트 라이브러리의 프로그래밍 언어에 따라 달라집니다. C++, Go, Java와 같은 동시 스레드를 지원하는 언어 구현의 경우 클라이언트 라이브러리가 스레드 수를 기본으로 선택합니다.
이 페이지에서는 동시성 제어의 개념과 게시자 클라이언트의 기능을 설정하는 방법을 설명합니다. 동시 실행 제어를 위해 구독자 클라이언트를 구성하려면 동시 실행 제어를 사용하여 추가 메시지 처리를 참고하세요.
시작하기 전에
게시 워크플로를 구성하기 전에 다음 작업이 완료되어야 합니다.
- 주제 및 게시 워크플로 자세히 알아보기
- 주제 만들기
필요한 역할
주제에 메시지를 게시하는 데 필요한 권한을 얻으려면 관리자에게 주제에 대한 Pub/Sub 게시자 (roles/pubsub.publisher
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
주제 및 구독을 만들거나 업데이트하려면 추가 권한이 필요합니다.
동시 실행 제어 구성
동시 실행 제어 변수의 기본값과 변수 이름은 클라이언트 라이브러리마다 다를 수 있습니다. 예를 들어 Java 클라이언트 라이브러리에서 동시 실행 제어를 구성하는 메서드는 setExecutorProvider()
및 setChannelProvider()
입니다. 자세한 내용은 API 참조 문서를 참고하세요.
setExecutorProvider()를 사용하면 게시 응답 처리에 사용되는 실행자 제공업체를 맞춤설정할 수 있습니다. 예를 들어 실행자 제공업체를 여러 게시자 클라이언트에서 스레드 수가 제한된 단일 공유 실행자를 반환하는 실행자 제공업체로 변경할 수 있습니다. 이 구성은 생성되는 스레드 수를 제한하는 데 도움이 됩니다.
setChannelProvider()를 사용하면 Pub/Sub에 대한 연결을 여는 데 사용되는 채널 제공업체를 맞춤설정할 수 있습니다. 일반적으로 여러 게시자 클라이언트에서 동일한 채널을 사용하지 않는 한 이 값을 구성하지 않습니다. 너무 많은 클라이언트에서 채널을 재사용하면
GOAWAY
또는ENHANCE_YOUR_CALM
오류가 발생할 수 있습니다. 애플리케이션의 로그 또는 Cloud 로그에 이러한 오류가 표시되면 채널을 더 만드세요.
동시 실행 제어용 코드 샘플
C++
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 C++ 설정 안내를 따르세요. 자세한 내용은 Pub/Sub C++ API 참고 문서를 확인하세요.
Go
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Go 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Go API 참고 문서를 참조하세요.
자바
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 Pub/Sub 자바 API 참조 문서를 참조하세요.
Ruby
이 샘플을 시도하기 전에 빠른 시작: 클라이언트 라이브러리 사용의 Ruby 설정 안내를 따르세요. 자세한 내용은 Pub/Sub Ruby API 참고 문서를 참조하세요.
다음 단계
Pub/Sub에서 메시지 데이터를 저장하는 위치를 제한하려면 Pub/Sub 리소스 위치 제한을 참조하세요.
메시지 수신에 대한 자세한 내용은 구독 유형 선택을 참조하세요.