Todos os produtos
Search
Central de documentação

Server Load Balancer:Load balance gRPC traffic

Última atualização: Sep 21, 2026

O gRPC é um framework de chamada de procedimento remoto (RPC) de código aberto e alto desempenho. Ao usar o gRPC para a comunicação de serviços de backend, você pode usar o Application Load Balancer (ALB) para balancear o tráfego gRPC e fornecer um ponto de entrada unificado. O gRPC se comunica pelo protocolo HTTP/2, e o ALB oferece suporte ao encaminhamento de tráfego para grupos de servidores de backend gRPC por meio de listeners HTTPS.

Informações de contexto

O gRPC é um framework de chamada de procedimento remoto de código aberto e alto desempenho. Ele usa o Protocol Buffers como sua linguagem de definição de interface (IDL) e se comunica por HTTP/2.

O gRPC resolve problemas de comunicação entre serviços em diferentes linguagens. Sua IDL fornece código gerado automaticamente para definir e chamar serviços remotos. Ao usar codificação binária e multiplexação HTTP/2, o gRPC oferece alto desempenho, baixa latência e transferência de dados eficiente.

O gRPC é adequado para arquiteturas de microsserviços, comunicação entre diferentes linguagens e sistemas distribuídos em grande escala. Ele oferece suporte a chamadas unárias, solicitações e respostas em streaming e streaming bidirecional.

Para obter mais informações sobre o gRPC, consulte a documentação oficial do gRPC.

Cenário

Uma empresa implanta serviços gRPC em uma VPC na região China (Hangzhou) e configura uma instância do ALB e um grupo de servidores com suporte a gRPC. A instância do ALB possui um listener HTTPS com HTTP/2 ativado, e o grupo de servidores possui verificações de integridade gRPC.

Os clientes precisam acessar os serviços gRPC implantados na VPC por meio da instância do ALB.

image

Pré-requisitos

Etapa 1: Criar um grupo de servidores

  1. Faça login no console do ALB.

  2. Na barra de navegação superior, selecione a região onde a instância do ALB está implantada.

  3. No painel de navegação à esquerda, escolha ALB > Server Groups.

  4. Na página Server Groups, clique em Create Server Group.

  5. Na caixa de diálogo Create Server Group, configure os parâmetros a seguir e clique em Create.

    Este tópico descreve apenas os parâmetros relevantes para este cenário. Para outros parâmetros, use os valores padrão ou configure-os conforme necessário.

    Parâmetro

    Descrição

    Server Group Type

    Selecione o tipo de grupo de servidores. Neste exemplo, Server está selecionado.

    VPC

    Selecione a VPC da sua instância do ALB. Apenas servidores nesta VPC podem ser adicionados ao grupo de servidores.

    Backend Protocol

    Neste exemplo, selecione gRPC.

    Health Check

    Ative este recurso.

    Health Check Settings

    Clique em Modify e defina as configurações de verificação de integridade:

    • Health Check Protocol: Neste exemplo, selecione gRPC.

    • Health Check Method: Neste exemplo, selecione POST.

    • Health Check Status Codes: Selecione o código de status que indica uma resposta íntegra. Esse código deve corresponder ao código de status retornado pelo seu serviço gRPC. Neste exemplo, o código de status é 12.

  6. Na página Server Groups, localize o grupo de servidores que você criou e clique no ID correspondente.

  7. Clique na aba Backend Servers e, em seguida, clique em Add Backend Server.

  8. No painel Add Backend Server, selecione as instâncias de ECS que você criou e clique em Next.

  9. Na etapa Ports/Weights, defina a porta e o peso para cada instância de ECS e clique em OK.

    Nota

    A porta configurada para uma instância de ECS deve corresponder à porta usada pelo serviço gRPC. Além disso, garanta que as regras do grupo de segurança da instância permitam o tráfego nessa porta.

Etapa 2: Configurar um listener HTTPS

  1. Faça login no console do Application Load Balancer (ALB).

  2. Na barra de navegação superior, selecione a região onde sua instância está implantada.

  3. No painel de navegação à esquerda, clique em Instances.

  4. Na página Instances, localize a instância que você deseja gerenciar e clique em Create Listener na coluna Actions.

  5. Na página Configure Listener, configure os parâmetros a seguir. Use os valores padrão para outros parâmetros ou defina-os conforme necessário. Em seguida, clique em Next.

    Parâmetro

    Descrição

    Listener Protocol

    Selecione HTTPS.

    Listener Port

    Neste exemplo, utilize a porta 443.

    Nota

    Se o protocolo de backend de um grupo de servidores estiver definido como gRPC, o protocolo do listener deverá ser HTTPS e o HTTP/2.0 deverá estar ativado.

  6. Na página Configure SSL Certificate, configure o parâmetro a seguir. Use os valores padrão para outros parâmetros ou defina-os conforme necessário. Em seguida, clique em Next.

    Parâmetro

    Descrição

    Server Certificate

    Selecione o certificado SSL preparado.

  7. Na página Select Server Group, configure o parâmetro a seguir. Use os valores padrão para outros parâmetros ou defina-os conforme necessário. Em seguida, clique em Next.

    Parâmetro

    Descrição

    Server Group

    Selecione o grupo de servidores gRPC que você criou.

  8. Na página Configuration Review, verifique a configuração. Se a configuração estiver correta, clique em Submit e aguarde a criação do listener.

Etapa 3: Configurar a resolução de DNS

Para ambientes de produção, recomendamos mapear um nome de domínio personalizado para o nome de domínio da instância do ALB por meio da criação de um registro CNAME.

  1. No painel de navegação à esquerda, escolha ALB > Instances.

  2. Na página Instances, copie o nome DNS da instância ALB criada.

  3. Siga estas etapas para adicionar um registro CNAME.

    Nota

    Se o seu nome de domínio estiver registrado em um provedor que não seja a Alibaba Cloud, adicione o nome de domínio ao console do Alibaba Cloud DNS antes de configurar a resolução de DNS. Para obter mais informações, consulte Manage domain names. Se o seu nome de domínio estiver registrado na Alibaba Cloud, prossiga com as etapas a seguir.

    1. Faça login no console do Alibaba Cloud DNS.

    2. Na página Public Zone, localize o nome de domínio de destino e clique em Settings na coluna Operations.

    3. Na página Settings, clique em Add Record.

    4. No painel Add Record, configure o registro CNAME definindo os parâmetros a seguir e, em seguida, clique em OK.

      Parâmetro

      Descrição

      Record Type

      Selecione CNAME na lista suspensa.

      Hostname

      O prefixo do seu nome de domínio. Este tutorial usa @.

      Nota

      Para usar um domínio raiz, defina o nome do host como @.

      Query Source

      Selecione Default.

      Record Value

      Insira o nome DNS da instância ALB que você copiou.

      TTL

      O tempo de vida (TTL) é a duração em que um registro DNS é armazenado em cache em um servidor DNS. Use o valor padrão.

Etapa 4: Verificar a conectividade

Após concluir as etapas anteriores, os clientes podem acessar os serviços gRPC por meio do ALB. Use uma ferramenta como o grpcurl para testar a conectividade.

Nota

Você não pode acessar diretamente um serviço gRPC a partir de um navegador web. Recomendamos o uso de uma ferramenta como o grpcurl para testar a conectividade.

No cliente, execute o comando grpcurl -insecure -v <Domain name>:<Listener port> <gRPC service name>/<Method> para acessar o serviço gRPC na instância de ECS.

Uma resposta semelhante à seguinte confirma que os clientes podem acessar o serviço gRPC por meio do ALB.

[root@iZbp1xxx.0Z ~]# grpcurl -insecure -v xxx.com:443 helloworld.Greeter/SayHello
Resolved method descriptor:
rpc SayHello ( .helloworld.HelloRequest ) returns ( .helloworld.HelloReply );
Request metadata to send:
(empty)
Response headers received:
accept-encoding: identity,gzip
content-type: application/grpc
date: Mon, 04 Jul 2022 08:53:01 GMT
grpc-accept-encoding: identity,deflate,gzip
vary: Accept-Encoding
Response contents:
{
  "message": "remoteip:47.xxx.xxx.195 x-forwarded-for:47.xxx.xxx.xx5 user-agent:grpcurl/v1.8.0 grpc-go/1.30.0 hostname:iZbp12xxx0kZ server addr:192.168.1.239 "
}
Response trailers received:
(empty)
Sent 0 requests and received 1 response

Documentos relacionados

  • Para obter mais informações sobre os parâmetros e considerações para listeners HTTPS, consulte Add an HTTPS listener.

  • Para obter mais informações sobre os parâmetros e considerações para grupos de servidores, consulte Create and manage server groups.

  • Para obter mais informações sobre os parâmetros e considerações para verificações de integridade, consulte ALB health checks.