Проксиране на gRPC
gRPC е независима от езика, високопроизводителна рамка за отдалечено извикване на процедури (RPC). Тя е
Въведение
gRPC е независима от езика, високопроизводителна рамка за отдалечено извикване на процедури (RPC). Тя е изградена върху HTTP/2 и може да бъде проксирана през YARP. Въпреки че YARP не се нуждае да разбира gRPC съобщенията, трябва да се уверите, че е активиран правилният HTTP протокол. gRPC изисква HTTP/2 и gRPC извикванията ще се провалят, ако YARP не е конфигуриран правилно да изпраща и получава HTTP/2 заявки.
Конфигуриране на входящите протоколи на YARP
За повечето сценарии gRPC изисква HTTP/2. HTTP/1.1 и HTTP/2 са активирани по подразбиране на сървърите на ASP.NET Core (входната част на YARP), но за HTTP/2 се изисква https (TLS), така че YARP трябва да слуша на https:// адрес.
HTTP/2 през http (без TLS) се поддържа само в Kestrel и изисква специфични настройки. За повече информация вижте gRPC services with ASP.NET Core.
По-долу е показано как да конфигурирате Kestrel да използва HTTP/2 през http (без TLS):
JSON {
"Kestrel": {
"Endpoints": {
"http": {
"Url": "http://localhost:5000",
"Protocols": "Http2"
}
}
}
}Конфигуриране на изходящите протоколи на YARP
YARP автоматично договаря HTTP/1.1 или HTTP/2 за изходящите прокси заявки, но само за https (TLS). HTTP/2 през http (без TLS) изисква допълнителни настройки. Имайте предвид, че изходящите протоколи са независими от входящите. Например https може да се използва за входящата
връзка, а http — за изходящата; това се нарича прекратяване на TLS (TLS termination). За подробности относно
конфигурацията вижте YARP HTTP Client Configuration.
По-долу е показано как да конфигурирате изходящата прокси заявка да използва HTTP/2:
JSON"cluster1": {
"HttpRequest": {
"Version": "2",
"VersionPolicy": "RequestVersionExact"
},
"Destinations": {
"cluster1/destination1": {
"Address": "http://localhost:6000/"
}
}
},gRPC-Web
gRPC-Web е алтернативен формат за пренос на данни за gRPC, който е съвместим с HTTP/1.1.
application/grpc — gRPC през HTTP/2 е обичайният начин на използване на gRPC. application/grpc-web — gRPC-Web модифицира gRPC протокола, за да бъде съвместим с HTTP/1.1. gRPC-Web може да се използва на повече места. gRPC-Web може да се използва от браузърни приложения и в мрежи без пълна поддръжка на HTTP/2. Не се поддържат две разширени функции на gRPC: клиентско поточно предаване (client streaming) и двупосочно поточно предаване (bidirectional streaming).
gRPC-Web може да бъде проксиран от конфигурацията по подразбиране на YARP без никакви специални настройки.
Тази статия е създадена от автора с помощта на AI. Научете повече