Este artigo foi compartilhado pela Huawei Cloud Community " Java Chassis 3 Technology Decryption: Interface Dimension Load Balancing ", autor: liubao68.
Em Java Chassis 3 Technology Decrypted: Load Balancing Selector, os algoritmos fornecidos pelo balanceamento de carga Java Chassis 3 na resolução de desempenho são descriptografados. A tecnologia descriptografada desta vez vem de casos reais de clientes:
No sistema de microsserviço do cliente, existem muitas interfaces com diferentes lógicas e modos de acesso especiais. Freqüentemente, há um fenômeno de desequilíbrio de carga em que algumas instâncias têm filas graves no pool de threads, enquanto outras instâncias têm cargas baixas. Por exemplo: o microsserviço A acessa o microsserviço B. O microsserviço B possui duas instâncias, B1 e B2, e duas interfaces, OP1 e OP2. Entre elas, o processamento do OP1 é mais demorado e ocupa mais tempo de CPU, enquanto o processamento do OP2 é mais rápido. A lógica de negócios do microsserviço A chamará o microsserviço B no modo de acesso OP1, OP2, OP1, OP2... No sistema do cliente, muitas vezes acontece que OP1 acessa B1 e OP2 acessa B2.
A razão para esse problema é que o algoritmo Round Robin aloca instâncias com base na ordem de solicitação, sem considerar diferencialmente os requisitos de balanceamento de diferentes solicitações. A maneira mais simples e direta de resolver esse problema é usar o algoritmo Random. No entanto, ao selecionar um algoritmo de balanceamento de carga, a previsibilidade é muito conveniente para localização do problema, análise de problemas e prevenção de problemas. . A melhor escolha para a província.
A solução no Java Chassis 3 é fornecer balanceamento de carga dimensional de interface.
No cenário padrão, o Java Chassis cria um balanceador de carga para cada contrato (esquema). Se OP1 e OP2 pertencem a UserService e LoginService respectivamente, então no cenário de exemplo acima, o desenvolvedor não precisa fazer nenhuma configuração e o tráfego será necessário. ser automaticamente equilibrado.
Se OP1 e OP2 pertencem ao LoginService e você precisa garantir o equilíbrio do tráfego do OP1, você pode configurar:
servicecomb.loadbalance.${Microservice B}.${Nome do contrato}.${Nome da interface}.strategy.name=RoundRobin
por exemplo:
servicecomb.loadbalance.B.LoginService.login.strategy.name=RoundRobin
Defina balanceamento de carga diferente para solicitação demorada OP1 (login).
discussão adicional
Pode ser visto a partir do princípio de balanceamento de carga acima que, assumindo que o microsserviço X acessa M microsserviços e cada microsserviço tem uma média de N contratos, então X criará M * N balanceamento de carga. Para a maioria dos sistemas, esta ordem de grandeza está dentro de 1K. Geralmente, você só precisa atribuir balanceamento de carga independente a interfaces demoradas para garantir o equilíbrio do tráfego para solicitações demoradas. Além de resolver o problema de balanceamento de tráfego, o método de configuração do Java Chassis também pode fornecer uma solução de configuração muito simples para outros cenários especiais. Por exemplo, pode ser configurado por meio de:
servicecomb.loadbalance.${Microserviço B}.${Nome do contrato}.${Nome da interface}.strategy.name=SessionStickiness
Especifique políticas de permanência de sessão para interfaces específicas.
Resumir
Java Chassis 3 fornece recursos de gerenciamento de balanceamento de carga muito poderosos para diferentes cenários de aplicativos por meio de configurações de políticas de balanceamento de carga de dimensão de interface, ajudando a resolver problemas de carregamento de aplicativos, como desequilíbrio de carga e permanência de sessão.
Clique para seguir e conhecer as novas tecnologias da Huawei Cloud o mais rápido possível~
RustDesk suspendeu o serviço doméstico Taobao (taobao.com) devido a fraude desenfreada, reiniciou o trabalho de otimização da versão web, a Apple lançou o chip M4, estudantes do ensino médio criaram sua própria linguagem de programação de código aberto como uma cerimônia de maioridade - Internautas comentaram: Confiando em a defesa, Yunfeng renunciou ao Alibaba e planeja produzir no futuro o destino para programadores de jogos independentes o Visual Studio Code 1.89, é oficialmente anunciado pela Huawei. O ajuste de trabalho de Yu Chengdong foi pregado no “Pilar da Vergonha FFmpeg. ” 15 anos atrás, mas hoje ele tem que nos agradecer - Tencent QQ Video vinga sua vergonha anterior? A estação espelho de código aberto da Universidade de Ciência e Tecnologia Huazhong está oficialmente aberta ao acesso à rede externa