የPub/Sub Java gRPC ቻናልን ለHTTP CONNECT ማዋቀር
ProxyDetectorን በGAX ቻናል አቅራቢ በኩል ይጫኑ፣ የPub/Sub ዒላማ አድራሻና የTLS ማንነት ሳይለወጥ ይቆዩ።
የ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 ነው። ምሳሌው በዚህ ቻናል የሚጠቀመውን የተለመደ የኢንተርኔት አድራሻ ዒላማ ያስባል።
detector ከመጀመሪያው ዒላማ ጋር የፕሮክሲ ግንኙነት አድራሻ ይመልሳል። የgRPC ገንቢው የፕሮክሲ አድራሻው እንዲፈታ ይጠይቃል። የአገልግሎቱን መጨረሻ ነጥብ እንደ Pub/Sub ይተዉት፦ በፕሮክሲ ሆስት ስም መተካቱ የአገልግሎቱን ዒላማና የታለመውን TLS ማንነት ያጣል።
ላልተረጋገጠ ፕሮክሲ የተጠቃሚ ስም/የይለፍ ቃል ጥሪዎችን ያስወግዱ፤ ይፋዊ HTTP እጩዎች በHTTP ፕሮክሲ ዝርዝር ውስጥ ይገኛሉ። እነዚያ ጥሪዎች የHTTP CONNECT መረጃ መለያ በይነገጽ ናቸው፣ SOCKS ወይም አጠቃላይ NTLM አተገባበር አይደሉም።
ስህተቱ ከgRPC ሥራ በፊት በራሱ የተፈጠረ መረጃ መለያ ቶክን ሲያገኝ ከሆነ፣ የዚያ መረጃ መለያ የHTTP መንገድን ይመርምሩ። እዚህ ከሚታየው የቻናል አቅራቢ ውጭ ነው።