Limitações do Traffic Director com aplicativos gRPC sem proxy

Este documento contém limitações que se aplicam ao Traffic Director com aplicativo gRPC sem proxy. Consulte a página Cotas e limites para mais informações.

Limitações gerais

  • 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 Cloud é somente leitura.

  • O gRPC 1.30.0, com o patch mais recente ou superior, atualmente é compatível com aplicativos gRPC sem proxy nas linguagens C++, Java, Go, Python, PHP, Ruby e C#.

  • O gRPC sem proxy é compatível com descoberta de endpoints, roteamento, balanceamento de carga e relatórios de carga.

    • Para versão mínima do gRPC necessária para oferecer suporte a alguns recursos de gerenciamento de tráfego avançado, consulte Recursos do Traffic Director.
    • Se você precisar de recursos não compatíveis do gerenciamento de tráfego avançado, configure seus clientes gRPC para usar serviços gRPC sem proxy somente em um subconjunto de serviços. É possível usar proxies sidecar para se comunicar com servidores que exigem funcionalidades que ainda não são compatíveis com serviços gRPC sem proxy.
  • No gRPC versão 1.30.0, apenas o balanceamento de carga round-robin é compatível. Não há suporte para outros algoritmos de balanceamento de carga.

    • O Traffic Director fornece uma lista ponderada e priorizada de localidades (um grupo de instâncias ou um NEG) ao cliente gRPC. O Traffic Director calcula isso 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 em back-ends nessas localidades.
  • Failover: o failover de uma zona (localidade) para outra começa quando a capacidade da zona atual está abaixo de 50%. Esse limite não é configurável.

  • Em alguns casos, os comandos de configuração relacionados a um proxy gRPC de destino e à regra de encaminhamento que se referem a um proxy gRPC de destino 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:

  • hostrules
  • Recursos compatíveis no 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 (todos os campos)
    • service
    • routeAction
      • weightedBackendServices
        • backendService
        • weight

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:

    • ignoreCase e queryParameterMatches em routeRules
    • Ações de rota headerAction, urlRewrite, timeout, retryPolicy, requestMirrorPolicy, corsPolicy, faultInjectionPolicy e urlRedirect.
    • O defaultService, defaultRouteAction, defaultUrlRedirect e headerAction do mapa de URLs não são usados por serviços gRPC sem proxy. Se uma hostRule 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 em weightedBackendServices.
  • 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 e grpc-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 disso, transfira lentamente o tráfego do serviço de back-end antigo para o novo.

Limitações do proxy gRPC de destino

Quando um mapa de URL é referenciado por um proxy gRPC de destino, se você estiver usando um proxy sidecar ou um serviço gRPC sem proxy, não será possível configurar os seguintes recursos do mapa de URLs. Isso ocorre porque esses recursos específicos do protocolo HTTP não se aplicam ao protocolo gRPC:

  • Regra de correspondência ignoreCase
  • Regra de correspondência queryParameterMatches
  • 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:

  • sessionAffinity
  • affinityCookieTtlSec
  • consistentHash
  • circuitBreakers
  • outlierDetection