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 గుర్తింపు కోల్పోతాయి.

ప్రామాణీకరణ లేని ప్రాక్సీ కోసం వినియోగదారు పేరు/పాస్వర్డ్ కాల్లను తొలగించండి; పబ్లిక్ HTTP అభ్యర్థులు HTTP ప్రాక్సీల జాబితాలో ఉన్నాయి. ఆ కాల్లు HTTP CONNECT క్రెడెన్షియల్ ఇంటర్ఫేస్, SOCKS లేదా సాధారణ NTLM అమలు కాదు.

gRPC ఆపరేషన్కు ముందు వైఫల్యం సంభవించి, స్వతంత్రంగా సృష్టించిన క్రెడెన్షియల్ టోకెన్ పొందుతుంటే, ఆ క్రెడెన్షియల్ HTTP మార్గాన్ని పరిశీలించండి. అది ఇక్కడ చూపిన ఛానెల్ ప్రొవైడర్కు వెలుపల ఉంది.

సంబంధిత వ్యాసాలు