ਜਦੋਂ 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 ਰਾਹ ਜਾਂਚੋ। ਇਹ ਇੱਥੇ ਦਿਖਾਏ ਚੈਨਲ ਪ੍ਰੋਵਾਈਡਰ ਤੋਂ ਬਾਹਰ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ