გამოიყენეთ გენერირებული კლიენტის არხის პროვაიდერი, როცა 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 მარშრუტი. ის აქ ნაჩვენები არხის პროვაიდერის გარეთაა.

დაკავშირებული სტატიები