HTTP CONNECT를 위한 Pub/Sub Java gRPC 채널 구성
GAX 채널 공급자를 통해 ProxyDetector를 설치하고 Pub/Sub의 대상 주소와 TLS ID를 그대로 유지합니다.
Pub/Sub Java gRPC 연결에 HTTP CONNECT 프록시가 필요하면 생성된 클라이언트의 채널 공급자를 사용하세요. 일반적인 URLConnection 설정으로는 이 채널 구성이 만들어지지 않습니다.
topic-admin 클라이언트의 경우:
var channelProvider = TopicAdminSettings
.defaultGrpcTransportProviderBuilder()
.setChannelConfigurator(channel -> channel.proxyDetector(target ->
HttpConnectProxiedSocketAddress.newBuilder()
.setProxyAddress(new InetSocketAddress("proxy.example", 8080))
.setTargetAddress((InetSocketAddress) target)
.setUsername(proxyUser)
.setPassword(proxyPassword)
.build()))
.build();
var settings = TopicAdminSettings.newBuilder()
.setTransportChannelProvider(channelProvider)
.build();
try (TopicAdminClient client = TopicAdminClient.create(settings)) {
// Perform the application's intended topic-admin operation here.
}TopicAdminClient과 TopicAdminSettings는 Pub/Sub v1 클래스이고, HttpConnectProxiedSocketAddress은 io.grpc에서, InetSocketAddress는 java.net에서 옵니다. 예제는 이 채널이 사용하는 일반적인 인터넷 주소 대상을 가정합니다.
탐지기는 원래 대상과 함께 프록시 연결 주소를 반환합니다. gRPC 빌더는 프록시 주소가 확인되어 있어야 합니다. 서비스 엔드포인트는 Pub/Sub 그대로 두세요. 프록시 호스트 이름으로 바꾸면 서비스 대상과 의도한 TLS ID를 잃게 됩니다.
인증이 없는 프록시에서는 사용자 이름/비밀번호 호출을 제거하세요. 공개 HTTP 후보는 HTTP 프록시 목록에서 찾을 수 있습니다. 이 호출은 HTTP CONNECT 자격 증명 인터페이스이며 SOCKS나 일반 NTLM 구현이 아닙니다.
gRPC 작업 전에 실패하면서 별도로 만든 자격 증명이 토큰을 얻는다면 그 자격 증명의 HTTP 경로를 확인하세요. 이는 여기에 표시된 채널 공급자 밖의 일입니다.