Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Introdução
gRPC é uma estrutura de RPC (Chamada de Procedimento Remoto) independente de linguagem e de alto desempenho. Ele é construído com base em HTTP/2 e pode ser proxiado através do YARP. Embora o YARP não precise estar ciente das mensagens gRPC, você precisa verificar se o protocolo HTTP correto está habilitado. O gRPC requer HTTP/2 e as chamadas gRPC falharão se o YARP não estiver configurado corretamente para enviar e receber solicitações HTTP/2.
Configurar os protocolos de entrada do YARP
gRPC requer HTTP/2 para a maioria dos cenários. HTTP/1.1 e HTTP/2 são habilitados por padrão em servidores ASP.NET Core (front-end do YARP), mas eles exigem https (TLS) para HTTP/2, portanto, o YARP precisa estar escutando em um URL https://
.
HTTP/2 sobre http (não TLS) só tem suporte em Kestrel e requer configurações específicas. Para obter mais informações, consulte Serviços gRPC com ASP.NET Core.
Isso mostra a configuração de Kestrel para usar HTTP/2 por http (não TLS):
{
"Kestrel": {
"Endpoints": {
"http": {
"Url": "http://localhost:5000",
"Protocols": "Http2"
}
}
}
}
Configurar os protocolos de saída do YARP
O YARP negocia automaticamente HTTP/1.1 ou HTTP/2 para solicitações de proxy de saída, mas apenas para https (TLS). HTTP/2 sobre http (não TLS) requer configurações adicionais. Observe que os protocolos de saída são independentes dos de entrada. Por exemplo, https podem ser usados para a conexão de entrada e http para a saída, isso é chamado de terminação TLS. Para obter detalhes de configuração, consulte Configuração do cliente HTTP YARP.
A seguir, é mostrado como configurar a solicitação de proxy de saída para usar HTTP/2:
"cluster1": {
"HttpRequest": {
"Version": "2",
"VersionPolicy": "RequestVersionExact"
},
"Destinations": {
"cluster1/destination1": {
"Address": "http://localhost:6000/"
}
}
},
gRPC-Web
gRPC-Web é um formato de fio alternativo para gRPC compatível com HTTP/1.1.
application/grpc
- gRPC sobre HTTP/2 é o modo como o gRPC é geralmente usado.application/grpc-web
– o gRPC-Web modifica o protocolo do gRPC para ser compatível com o HTTP/1.1. O gRPC-Web pode ser usado em mais locais. O gRPC-Web pode ser usado por aplicativos de navegador e em redes sem suporte completo para HTTP/2. Não há suporte para dois recursos avançados do gRPC: streaming de cliente e streaming bidirecional.
gRPC-Web pode ser proxiado pela configuração padrão do YARP sem considerações especiais.