Limitazioni gRPC senza proxy
Questo documento descrive le limitazioni che si applicano a Traffic Director con le applicazioni gRPC senza proxy. Per informazioni sui limiti, consulta Quote e limiti.
Limitazioni generali
Le limitazioni di Traffic Director con applicazioni gRPC proxyless includono quanto segue:
Non puoi configurare i servizi di backend e le mappe di regole di routing con il protocollo gRPC in Google Cloud Console. Per queste risorse, la console di Google Cloud è di sola lettura.
gRPC senza proxy supporta il rilevamento degli endpoint, il routing, il bilanciamento del carico, la generazione di report sul carico e molte funzionalità avanzate di gestione del traffico.
Per la versione minima di gRPC necessaria per supportare alcune funzionalità di gestione avanzata del traffico, vedi Versioni gRPC e lingue supportate.
Per le applicazioni gRPC che necessitano di funzionalità avanzate di gestione del traffico non supportate, utilizza il resolver del nome DNS anziché il resolver xDS ed esegui il deployment con proxy sidecar supportati con Traffic Director. Nel proxy gRPC di destinazione, imposta il campo
validateForProxyless
suFALSE
in modo da poter configurare le funzionalità che non sono ancora supportate da gRPC, ma che sono disponibili in Traffic Director con l'uso di proxy sidecar.
gRPC proxyless supporta solo i criteri di bilanciamento del carico di round robin e ring. Non sono supportati altri criteri di bilanciamento del carico.
- Traffic Director fornisce un elenco ponderato di priorità delle località, un gruppo di istanze o un gruppo di endpoint di rete (NEG), al client gRPC. Traffic Director calcola questo elenco in base alla zona disponibile più vicina, alla sua capacità e alla modalità di bilanciamento del servizio di backend.
- Per una richiesta specifica, il client gRPC sceglie una o più località in base alla priorità e alla ponderazione ed esegue il bilanciamento del carico basato su hash o round ring ai backend all'interno di tali località.
Il failover da una zona (località) a un'altra inizia quando la capacità attuale della zona scende al di sotto del 50%. Non puoi configurare questa soglia.
In alcuni casi, i comandi di configurazione relativi a un proxy gRPC di destinazione e una regola di forwarding che fa riferimento a un proxy gRPC di destinazione potrebbero richiedere fino a un minuto.
Limiti della mappa URL
Le seguenti funzionalità di gestione del traffico delle mappe URL sono supportate con i servizi gRPC senza proxy.
Funzionalità supportate nella pathMatcher
di 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
Quando utilizzi i servizi gRPC proxyless, si applicano le seguenti limitazioni per le mappe URL:
I caratteri jolly nelle regole host e nelle regole predefinite di una mappa URL, inclusa la regola host
*
implicitamente creata di una mappa URL, non sono supportati. Queste voci vengono ignorate al termine della corrispondenza dell'host.Le seguenti funzionalità non sono supportate:
queryParameterMatches
inrouteRules
headerAction
,urlRewrite
,requestMirrorPolicy
,corsPolicy
eurlRedirect
azione routetimeout
azione route; utilizzamaxStreamDuration
anzichétimeout
perTryTimeout
inretryPolicy
retryConditions
inretryPolicy
tranne una o più condizionicancelled
,deadline-exceeded
,internal
,resource-exhausted
eunavailable
defaultService
,defaultRouteAction
,defaultUrlRedirect
eheaderAction
della mappa URL non sono usati dai servizi gRPC senza proxy. Se non viene trovata una regola host corrispondente quando un client gRPC senza proxy cerca il nome di un servizio, Traffic Director restituisce un errore di ricerca dei nomi invece di utilizzare il servizio o l'azione predefinita della mappa URL.headerAction
inweightedBackendServices
Nelle regole di corrispondenza dell'intestazione della mappa URL sono supportate solo i metadati personalizzati e l'intestazione
content-type
specificati dall'utente non binari. Le seguenti intestazioni a livello di trasporto non possono essere utilizzate nelle regole di corrispondenza delle intestazioni::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 aggiorni una regola host di una mappa URL per passare da un servizio di backend a un altro, il traffico potrebbe essere interrotto temporaneamente mentre la nuova configurazione viene inviata ai client. Per evitare questa limitazione, configura la suddivisione del traffico con servizi di backend ponderati. Dopo aver configurato la suddivisione del traffico, sposta lentamente il traffico dal vecchio servizio di backend a quello nuovo.
Limitazioni proxy gRPC di destinazione
Quando un proxy gRPC di destinazione fa riferimento a una mappa URL, non puoi configurare le seguenti funzionalità di mappa URL. Questo vale indipendentemente dal fatto che tu stia utilizzando un proxy sidecar o un servizio gRPC senza proxy perché queste funzionalità specifiche del protocollo HTTP non si applicano al protocollo gRPC:
queryParameterMatches
regola di corrispondenzaurlRewrite
azione routeurlRedirect
azione route- Azione
corsPolicy
Limitazioni del servizio di backend
Le seguenti funzionalità del servizio di backend non sono supportate con i servizi gRPC senza proxy supportati con un proxy sidecar:
localityLbPolicy
tranneROUND_ROBIN
eRING_HASH
sessionAffinity
tranneHEADER_FIELD
eNONE
consistentHash
tranne i campihttpHeaderName
eminimumRingSize
affinityCookieTtlSec
outlierDetection
timeoutSec
; utilizza invecemaxStreamDuration
circuitBreakers
tranne il campomaxRequests
Limitazioni avanzate per la gestione del traffico
Non puoi configurare alcune funzionalità avanzate di gestione del traffico per i servizi gRPC senza proxy con Traffic Director. Per le funzionalità supportate, consulta i seguenti articoli:
- Versioni e lingue di gRPC supportate
- Funzionalità di Traffic Director, incluso il bilanciamento del carico
Limitazioni con Service Directory
- Service Directory e Traffic Director non garantiscono la connettività di rete per i client.
Un servizio di backend può fare riferimento solo a uno dei seguenti elementi:
- Gruppo di istanze gestite o gruppi di istanze non gestite
- Gruppo di endpoint di rete
- Associazioni dei servizi
I servizi Service Directory possono essere utilizzati solo con i servizi di backend globali con
load-balancing-scheme=INTERNAL_SELF_MANAGED
.Un servizio Service Directory a cui si fa riferimento in un'associazione di servizi può essere eliminato. Se il servizio Service Directory a cui è collegato il servizio di backend viene eliminato, le applicazioni che utilizzano Traffic Director non possono inviare traffico a questo servizio e, di conseguenza, le richieste non vanno a buon fine. Consulta Osservabilità e debug per le best practice.
Controlli di integrità
Quando associ un servizio Service Directory a un servizio di backend, non puoi configurare un controllo di integrità sul servizio di backend.
Passaggi successivi
- Per scoprire di più sulle limitazioni applicabili a Traffic Director, incluse le limitazioni di gestione avanzata del traffico, consulta le limitazioni di Traffic Director.
- Per trovare i casi d'uso e i pattern dell'architettura per i servizi gRPC senza proxy, consulta la panoramica dei servizi gRPC senza proxy.