YARP Docsv2.3
Документация/Протоколи/Проксиране на gRPC

Проксиране на 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. Научете повече

Адаптирано от Microsoft Learn , лицензирано под CC BY 4.0 .