Grpc.Dial () создает соединение http / 2? - PullRequest
0 голосов
/ 27 марта 2019

Я немного запутался по поводу grpc и http / 2.Из того, что я узнал, grpc является платформой RPC и может использовать различные типы транспортов, а http / 2 является лишь одним из транспортов.

В golang grpc.Dial() создаст соединение с сервером, а сервер grpc будет создан grpc#Server.Serve().Так что же это за связь?Это соединение http / 2?

Большое спасибо за помощь.

1 Ответ

1 голос
/ 28 марта 2019

Когда вы подключаетесь к серверу с помощью gRPC, он устанавливает одно соединение HTTP / 2, которое может использоваться несколькими запросами gRPC (концепция канала).

gRPC действительно является фреймворком RPC, построенным на HTTP / 2. По умолчанию он использует Protobufs в качестве протокола сериализации, но его можно настроить.

Думайте о gRPC как о прикладном слое RPC через HTTP / 2. Чтобы процитировать FAQ : «... gRPC также представляет собой набор библиотек, которые будут обеспечивать функции более высокого уровня на всех платформах, чего обычно нет у обычных библиотек HTTP. Примеры таких функций:

взаимодействие с управлением потоком на прикладном уровне каскадный вызов-отмена балансировка нагрузки и аварийное переключение «

...