Limitações do gRPC sem proxy
Neste documento, descrevemos as limitações que se aplicam ao Traffic Director com aplicativos gRPC sem proxy. Para mais informações sobre limites, consulte Cotas e limites.
Limitações gerais
As limitações do Traffic Director com aplicativos gRPC sem proxy incluem:
Não é possível configurar serviços de back-end e mapas de regras de roteamento com o protocolo gRPC no Console do Google Cloud. Para esses recursos, o Console do Google Cloud é somente leitura.
O gRPC sem proxy é compatível com descoberta de endpoints, roteamento, balanceamento de carga, relatórios de carga e muitos recursos avançados de gerenciamento de tráfego.
Para saber a versão mínima do gRPC necessária para compatibilidade com alguns recursos de gerenciamento de tráfego avançado, consulte Versões e linguagens compatíveis do gRPC.
Para seus aplicativos gRPC que precisam de recursos avançados de gerenciamento de tráfego, use o resolvedor de nomes DNS em vez do resolvedor xDS e implante com proxies secundários que sejam compatíveis com o Traffic Director. No proxy gRPC de destino, defina o campo
validateForProxyless
comoFALSE
para configurar recursos que ainda não são compatíveis com o gRPC, mas que estão disponíveis no Traffic Director com o uso de proxies secundários. .
O gRPC sem proxy é compatível apenas com políticas de balanceamento de carga de rodízio e anel de hash. Não há suporte para outras políticas de balanceamento de carga.
- O Traffic Director fornece uma lista ponderada priorizada de localidades (um grupo de instâncias ou um grupo de endpoints da rede (NEG)) ao cliente gRPC. O Traffic Director calcula essa lista com base na zona disponível mais próxima, na capacidade dela e no modo de balanceamento do serviço de back-end.
- Para uma solicitação específica, o cliente gRPC seleciona uma ou mais localidades com base na prioridade e ponderação e faz o balanceamento de carga round-robin ou anel de hash em back-ends nessas localidades.
O failover de uma zona (localidade) para outra começa quando a capacidade da zona atual está abaixo de 50%. Não é possível configurar esse limite.
Em alguns casos, os comandos de configuração relacionados a um proxy gRPC de destino e uma regra de encaminhamento que referenciam um proxy de destino do gRPC podem levar até um minuto.
Limitações do mapa de URLs
Os seguintes recursos de gerenciamento de tráfego do mapa de URLs são compatíveis com serviços gRPC sem proxy.
Recursos compatíveis com o pathMatcher
de hostRules
:
pathMatcher
name
description
defaultService
defaultRouteAction
weightedBackendServices
backendService
weight
retryPolicy
retryConditions
numRetries
faultInjectionPolicy
maxStreamDuration
pathRules
service
routeAction
weightedBackendServices
backendService
weight
retryPolicy
retryConditions
numRetries
faultInjectionPolicy
maxStreamDuration
paths
routeRules
priority
description
matchRules
prefixMatch
fullPathMatch
headerMatches
metadataFilters
service
routeAction
weightedBackendServices
backendService
weight
retryPolicy
retryConditions
numRetries
faultInjectionPolicy
maxStreamDuration
As limitações do mapa de URL a seguir se aplicam quando você usa serviços gRPC sem proxy:
Não há compatibilidade para caracteres curinga nas regras de host e regras padrão de um mapa de URL, incluindo a regra de host
*
criada implicitamente de um mapa de URL. Essas entradas são ignoradas quando a correspondência do host é feita.Os recursos a seguir não são compatíveis:
queryParameterMatches
emrouteRules
headerAction
,urlRewrite
,requestMirrorPolicy
,corsPolicy
, eurlRedirect
ações de rota- Ação de rota
timeout
. UsemaxStreamDuration
em vez detimeout
perTryTimeout
emretryPolicy
retryConditions
emretryPolicy
, exceto uma ou mais condições decancelled
,deadline-exceeded
,internal
,resource-exhausted
eunavailable
- O
defaultService
,defaultRouteAction
,defaultUrlRedirect
eheaderAction
do mapa de URLs não são usados por serviços gRPC sem proxy. Se uma regra de host correspondente não for encontrada quando um cliente gRPC sem proxy procurar um nome de serviço, o Traffic Director retornará um erro de pesquisa de nome em vez de usar o serviço ou a ação padrão do mapa de URLs. headerAction
emweightedBackendServices
Nas regras de correspondência de cabeçalho do mapa de URLs, somente os metadados personalizados não especificados pelo usuário e o cabeçalho
content-type
são compatíveis. Os seguintes cabeçalhos no nível de transporte não podem ser usados em regras de correspondência de cabeçalho::authority
,:method
,:path
,:scheme
,user-agent
,accept-encoding
,content-encoding
,grpc-accept-encoding
,grpc-encoding
,grpc-previous-rpc-attempts
,grpc-tags-bin
,grpc-timeout
egrpc-trace-bin
.Quando você atualiza uma regra de host do mapa de URLs para mudar de um serviço de back-end para outro, o tráfego pode ficar inativo momentaneamente enquanto a nova configuração é enviada aos clientes. Para evitar essa limitação, configure a divisão de tráfego com serviços de back-end ponderado. Depois de configurar a divisão de tráfego, transfira lentamente o tráfego do serviço de back-end antigo para o novo.
Limitações do proxy gRPC de destino
Quando um proxy gRPC de destino faz referência a um mapa de URL, não é possível configurar os recursos do mapa de URL a seguir. Isso ocorre independentemente de você estar usando um proxy sidecar ou um serviço gRPC sem proxy, porque esses recursos específicos do protocolo HTTP não se aplicam ao protocolo gRPC:
queryParameterMatches
regra de correspondência- Ação de rota
urlRewrite
- Ação de rota
urlRedirect
- Ação
corsPolicy
Limitações do serviço de back-end
Os seguintes recursos do serviço de back-end não são compatíveis com os serviços gRPC sem proxy que oferecem suporte para proxy sidecar:
localityLbPolicy
excetoROUND_ROBIN
eRING_HASH
sessionAffinity
, excetoHEADER_FIELD
eNONE
consistentHash
, exceto os camposhttpHeaderName
eminimumRingSize
affinityCookieTtlSec
outlierDetection
timeoutSec
, usemaxStreamDuration
.circuitBreakers
exceto o campomaxRequests
Limitações avançadas de gerenciamento de tráfego
Não é possível configurar alguns recursos avançados de gerenciamento de tráfego para serviços do gRPC sem proxy com o Traffic Director. Para ver os recursos compatíveis, consulte:
- Versões e linguagens do gRPC compatíveis
- Recursos do Traffic Director, incluindo o balanceamento de carga
Limitações com o Diretório de serviços
- O Diretório de serviços e o Traffic Director não garantem a acessibilidade da rede para clientes.
Um serviço de back-end só pode referir-se a um dos seguintes itens:
- Grupo de instâncias gerenciadas ou não gerenciada
- Grupo de endpoints de rede
- Vinculações de serviço
Os serviços do Diretório de serviços só podem ser usados com serviços de back-end globais com
load-balancing-scheme=INTERNAL_SELF_MANAGED
.Um serviço do Diretório de serviços referenciado por uma vinculação de serviço pode ser excluído. Se o serviço do Diretório de serviços subjacente ao serviço de back-end estiver anexado, os aplicativos que usam o Traffic Director não poderão enviar tráfego para esse serviço. Portanto, as solicitações falharão. Para ver as práticas recomendadas, consulte Observabilidade e depuração.
Verificações de integridade
Quando você vincula um serviço do Diretório de serviços a um serviço de back-end, não é possível configurar uma verificação de integridade no serviço de back-end.
A seguir
- Para saber mais sobre as limitações aplicáveis ao Traffic Director, incluindo limitações avançadas de gerenciamento de tráfego, consulte Limitações do Traffic Director.
- Para encontrar casos de uso e padrões de arquitetura para serviços do gRPC sem proxy, consulte a Visão geral dos serviços do gRPC sem proxy.