Будет ли двунаправленный вызов RP C когда-либо открывать несколько соединений http2?
Я пишу клиент GRP C, который общается с сервером GRP C, которым я не владею / не контролирую. Я использую пакет @ grpc / grp c - js. Меня спросили, будет ли эта библиотека открывать несколько соединений HTTP2 с конечной точкой grp c, и я недостаточно знаком с исходным кодом, чтобы ответить на этот вопрос. Мой код для вызова и открытия потока выглядит следующим образом
const protoLoader = require('@grpc/proto-loader')
const packageDefinition = protoLoader.loadSync(
__dirname + '/path/to/v1.proto',
{keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true
})
const packageDefinition = grpc.loadPackageDefinition(packageDefinition).com.foo.bar.v1
const client = new packageDefinition.IngestService(
'server.url.here.com:443',
grpc.credentials.createSsl()
)
const stream = client.doTheThing(metadata)
Я сам начал изучать это и вижу, что Subchannel
объекты инициируют соединения http2 , поэтому кажется, что это одно соединение http2 на подканал. Однако связь между вызовом, потоком http2call, основным каналом, подканалом (ями), балансировщиком нагрузки и стеками фильтров мне неясна, и я не могу рассуждать о том, когда (если вообще) второе соединение HTTP2 когда-либо будет открыто.
В идеале, если кто-то может ответить на вопрос Будет ли двунаправленный RP C Вызовить несколько подключений http2? это было бы здорово. Если это слишком сложный ответ, я бы согласился с теорией работы о том, какими должны быть отношения между этими различными объектами, чтобы я сам мог рассуждать об этом, или что-нибудь еще, что, как вы думаете, могло бы помочь.