Configurar a canle gRPC de Pub/Sub Java para HTTP CONNECT
Instala un ProxyDetector a través do provedor de canles de GAX, mantendo o enderezo de destino e a identidade TLS de Pub/Sub.
Usa o provedor de canles do cliente xerado cando unha conexión Pub/Sub Java gRPC necesita un proxy HTTP CONNECT. Unha configuración normal de URLConnection non establece esta configuración de canle.
Para o cliente 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 e TopicAdminSettings son clases de Pub/Sub v1; HttpConnectProxiedSocketAddress vén de io.grpc e InetSocketAddress de java.net. O exemplo supón o destino habitual de enderezo de internet que usa esta canle.
O detector devolve un enderezo de conexión do proxy xunto co destino orixinal. O construtor de gRPC esixe que o enderezo do proxy estea resolto. Deixa o extremo do servizo como Pub/Sub: substituílo polo nome de host do proxy perdería o destino do servizo e a identidade TLS prevista.
Elimina as chamadas de usuario/contrasinal para un proxy sen autenticación; os candidatos HTTP públicos están na lista de proxys HTTP. Esas chamadas son a interface de credenciais de HTTP CONNECT, non SOCKS nin unha implementación xeral de NTLM.
Se o fallo ocorre antes da operación gRPC mentres unhas credenciais creadas de forma independente obteñen un token, inspecciona a ruta HTTP desas credenciais. Está fóra do provedor de canles mostrado aquí.