Limites de Traffic Director avec des applications gRPC sans proxy

Ce document présente les limites applicables à Traffic Director avec une application gRPC sans proxy. Pour plus d'informations sur les quotas et les limites, consultez la page Quotas et limites.

Limites générales

  • Vous ne pouvez pas configurer les services de backend ni les cartes des règles de routage avec le protocole gRPC dans Google Cloud Console. Cloud Console est en lecture seule pour ces ressources.

  • gRPC 1.30.0, avec le correctif le plus récent, ou version supérieure, est actuellement compatible avec les applications gRPC sans proxy dans les langages C++, Java, Go, Python, PHP, Ruby et C#.

  • gRPC sans proxy est compatible avec la découverte de points de terminaison, le routage, l'équilibrage de charge et la création de rapports sur la charge.

    • Pour connaître la version gRPC minimale requise pour prendre en charge certaines fonctionnalités de gestion avancée du trafic, consultez la page Caractéristiques de Traffic Director.
    • Si vous avez besoin de fonctionnalités de gestion avancée du trafic qui ne sont pas compatibles, configurez vos clients gRPC pour n'utiliser des services gRPC sans proxy que pour un sous-ensemble de services. Vous pouvez utiliser des proxys side-car pour communiquer avec les serveurs nécessitant une fonctionnalité qui n'est pas encore compatible avec les services gRPC sans proxy.
  • Dans gRPC version 1.30.0, seul l'équilibrage de charge round-robin est accepté. Les autres algorithmes d'équilibrage de charge ne sont pas compatibles.

    • Traffic Director fournit une liste de priorité pondérée des localités (un groupe d'instances ou un groupe de points de terminaison du réseau) au client gRPC. Traffic Director calcule ce résultat en fonction de la zone disponible la plus proche, de sa capacité et du mode d'équilibrage du service de backend. Pour une requête donnée, le client gRPC choisit une ou plusieurs localités en fonction de la priorité et du poids, et effectue un équilibrage de charge round robin des backends dans ces localités concernées.
  • Basculement : le basculement d'une zone (localité) à une autre commence lorsque la capacité de la zone actuelle est inférieure à 50 %. Ce seuil n'est pas configurable.

  • Dans certains cas, les commandes de configuration associées à un proxy gRPC cible et à une règle de transfert référençant un proxy gRPC cible peuvent prendre jusqu'à une minute.

Limites du mappage d'URL

Les fonctionnalités de gestion du trafic de mappage d'URL suivantes sont compatibles avec les services gRPC sans proxy :

  • hostrules
  • Fonctionnalités acceptées dans pathMatcher de hostRules
    • name
    • description
    • defaultService
    • defaultRouteAction
    • weightedBackendServices
      • backendService
      • weight
    • pathRules
    • service
    • routeAction
      • weightedBackendServices
        • backendService
        • weight
    • paths
    • routeRules
    • priority
    • description
    • matchRules
      • prefixMatch
      • fullPathMatch
      • regexMatch
      • headerMatches (tous les champs)
    • service
    • routeAction
      • weightedBackendServices
        • backendService
        • weight

Les limites de mappage d'URL suivantes s'appliquent lorsque vous utilisez des services gRPC sans proxy :

  • Les caractères génériques dans les règles d'hôte et les règles par défaut d'un mappage d'URL, y compris la règle d'hôte * créée implicitement d'un mappage d'URL, ne sont pas acceptés. Ces entrées sont ignorées lors de la mise en correspondance des hôtes.

  • Les fonctionnalités suivantes ne sont pas compatibles :

    • ignoreCase et queryParameterMatches dans routeRules.
    • Actions de routage headerAction, urlRewrite, timeout, retryPolicy, requestMirrorPolicy, corsPolicy, faultInjectionPolicy et urlRedirect.
    • Les éléments defaultService, defaultRouteAction, defaultUrlRedirect et headerAction du mappage d'URL ne sont pas utilisés par les services gRPC sans proxy. Si une règle hostRule correspondante est introuvable lorsqu'un client gRPC sans proxy recherche un nom de service, Traffic Director renvoie une erreur de recherche de nom au lieu d'utiliser le service ou l'action par défaut du mappage d'URL.
    • headerAction dans weightedBackendServices.
  • Dans les règles de correspondance des en-têtes de mappage d'URL, seules les métadonnées personnalisées non binaires spécifiées par l'utilisateur et l'en-tête content-type sont acceptées. Les en-têtes au niveau du transport suivants ne peuvent pas être utilisés dans les règles de correspondance des en-têtes : :authority, :method, :path, :scheme, user-agent, accept-encoding, content-encoding, grpc-accept-encoding, grpc-encoding, grpc-previous-rpc-attempts, grpc-tags-bin, grpc-timeout et grpc-trace-bin.

  • Lorsque vous mettez à jour une règle d'hôte de mappage d'URL pour passer d'un service de backend à un autre, le trafic peut être supprimé momentanément lors de la transmission de la nouvelle configuration aux clients. Pour éviter cette situation, configurez la répartition du trafic avec des services de backend pondérés. Ensuite, transférez lentement le trafic de l'ancien service de backend vers le nouveau service de backend.

Limites du proxy gRPC cible

Lorsqu'un mappage d'URL est référencé par un proxy gRPC cible, les fonctionnalités de mappage d'URL suivantes ne peuvent pas être configurées, que vous utilisiez un proxy side-car ou un service gRPC sans proxy. En effet, les fonctionnalités suivantes du protocole HTTP ne s'appliquent pas au protocole gRPC :

  • Règle de correspondance ignoreCase
  • Règle de correspondance queryParameterMatches
  • Action de routage urlRewrite
  • Action de routage urlRedirect
  • Action corsPolicy

Limites du service de backend

Les fonctionnalités de service de backend suivantes ne sont pas disponibles avec les services gRPC sans proxy compatibles avec le proxy side-car :

  • sessionAffinity
  • affinityCookieTtlSec
  • consistentHash
  • circuitBreakers
  • outlierDetection