Dubbo – controle de tráfego

Esta tarefa demonstra os recursos de controle de tráfego do Dubbo com base em um sistema simples de microsserviços de shopping online.

O diagrama de estrutura do shopping online é o seguinte:

 

O sistema consiste em 5 aplicativos de microsserviços:

  • A página inicial do frontend mall, como interface web para interação com os usuários, fornece serviços como login do usuário, exibição de produtos e gerenciamento de pedidos chamando Usuário, Detalhe, Pedido, etc.
  • Atendimento ao usuário, responsável pelo gerenciamento de dados do usuário, verificação de identidade, etc.
  • Serviço de pedidos, que fornece serviços como criação e consulta de pedidos e depende do serviço Detail para verificar o estoque de produtos e outras informações.
  • Serviço detalhado de detalhes do produto, que exibe informações detalhadas do produto e chama o serviço Comentário para exibir registros de comentários do usuário sobre produtos.
  • Serviço de comentários de comentários, gerencie dados de comentários de usuários sobre produtos.

Implantar o sistema do shopping

Por conveniência, implantamos todo o sistema no cluster Kubernetes e executamos o seguinte comando para concluir a implantação do projeto shopping. O exemplo de código-fonte do projeto está em dubbo-samples/task.

kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/10-task/dubbo-samples-shop/deploy/All.yml

O diagrama completo da arquitetura de implantação é o seguinte:

 

O serviço de pedidos tem duas versões v1 e v2, e v2 é uma nova versão lançada após a otimização do serviço de pedidos.

  • A versão v1 simplesmente cria um pedido sem exibir detalhes do pedido
  • A versão v2 exibirá os detalhes do endereço de entrega do pedido após ele ser criado com sucesso

Os serviços Detail e Comment também possuem duas versões, v1 e v2, respectivamente. Usamos múltiplas versões para demonstrar o efeito do desvio de tráfego.

  • A versão v1 atende todas as solicitações por padrão
  • A versão v2 simula um serviço implantado em uma região específica, portanto as instâncias v2 terão um rótulo específico

Execute o seguinte comando para garantir que todos os serviços e pods estejam funcionando normalmente:

$ kubectl get services -n dubbo-demo
$ kubectl get pods -n dubbo-demo

Para garantir a integridade do sistema, além de diversos aplicativos de microsserviços relacionados ao shopping, o exemplo também traz em segundo plano o centro de configuração de registro do Nacos, o console de administração Dubbo e o sistema de rastreamento de link completo Skywalking.

$ kubectl get services -n dubbo-system
$ kubectl get pods -n dubbo-system

Obtenha endereço de acesso

Execute o seguinte comando para mapear a porta do cluster para a porta local:

kubectl port-forward -n dubbo-demo deployment/shop-frontend 8080:8080
kubectl port-forward -n dubbo-system service/dubbo-admin 38080:38080
kubectl port-forward -n dubbo-system service/skywalking-oap-dashboard 8082:8082

Neste ponto, abra o navegador e acesse-o através do seguinte endereço:

  • Página inicial do shopping http://localhost:8080
  • Console de administração Dubbo http://localhost:38080
  • Console Skywalking http://localhost:8082

item de tarefa

A seguir, tente adicionar algumas regras de controle de tráfego ao shopping por meio dos seguintes itens de tarefa.

Ajuste o tempo limite

Ao ajustar dinamicamente o período de tempo limite de serviço durante o período de execução, é possível lidar eficazmente com problemas como tempos limite de serviço frequentes e bloqueio de serviço causados ​​por configurações de tempo limite não razoáveis ​​e emergências do sistema, e melhorar a estabilidade do sistema.

Aumente o número de novas tentativas

Após a falha da chamada de serviço inicial, tentar novamente pode melhorar efetivamente a taxa geral de sucesso da chamada.

registro de acesso

O log de acesso pode registrar todas as informações de solicitação de serviço processadas por uma determinada máquina dentro de um determinado período de tempo, e ativar dinamicamente o log de acesso no estado de execução é muito útil para solução de problemas.

A mesma sala/área de informática é preferida

Prioridade na mesma sala/área de computadores significa que quando um aplicativo chama um serviço, ele primeiro chama o provedor de serviços na mesma sala/área de computadores, evitando o atraso de rede causado pela região cruzada, reduzindo assim o tempo de resposta da chamada.

isolamento ambiental

Ao dividir um ambiente de isolamento lógico para um ou mais aplicativos no cluster, ele pode ser usado em um ambiente em escala de cinza ou em vários conjuntos de ambientes de teste.

roteamento de parâmetros

Por exemplo, o tráfego é roteado com base no ID do usuário e um pequeno número de solicitações do usuário é encaminhado para a versão mais recente do produto para verificar a estabilidade da nova versão e obter feedback do usuário sobre a experiência do produto.

proporção de peso

Ao ajustar dinamicamente o peso de uma única máquina ou de um grupo de máquinas por meio de regras, a distribuição do tráfego de solicitação pode ser alterada no estado de execução para obter roteamento de tráfego proporcional dinâmico.

downgrade de serviço

O objectivo principal do downgrade do serviço é visar estas dependências fracas.Quando as dependências fracas não estão disponíveis ou a chamada falha,a função é mantida tão completa quanto possível,devolvendo o resultado do downgrade.

Desvio de máquina fixo

Ajuda a reproduzir rapidamente problemas de desenvolvimento ou online, encaminhando solicitações para uma determinada máquina do provedor.

Acho que você gosta

Origin blog.csdn.net/leesinbad/article/details/132504269
Recomendado
Clasificación