Ρύθμιση του καναλιού gRPC του Pub/Sub Java για HTTP CONNECT
Εγκαταστήστε ένα ProxyDetector μέσω του παρόχου καναλιού GAX, διατηρώντας τη διεύθυνση προορισμού και την ταυτότητα TLS του Pub/Sub.
Χρησιμοποιήστε τον πάροχο καναλιού του παραγόμενου πελάτη όταν μια σύνδεση 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 proxy. Αυτές οι κλήσεις είναι η διεπαφή διαπιστευτηρίων HTTP CONNECT, όχι SOCKS ή μια γενική υλοποίηση NTLM.
Αν η αποτυχία συμβεί πριν από τη λειτουργία gRPC ενώ διαπιστευτήρια που δημιουργήθηκαν ανεξάρτητα λαμβάνουν διακριτικό, εξετάστε τη διαδρομή HTTP αυτών των διαπιστευτηρίων. Βρίσκεται εκτός του παρόχου καναλιού που φαίνεται εδώ.