Concluímos os dois componentes básicos do Centro de Registro e do provedor de serviços. Este artigo apresenta o serviço de chamada usando a fita da nuvem da primavera para carregar o balanceamento no lado do cliente.
Balanceamento de carga (LB: balanceamento de carga) é o primeiro problema a ser resolvido. Antes dos microsserviços, a solução LB era principalmente uma solução centralizada de balanceamento de carga e outro LB independente entre os consumidores de serviços e os provedores de serviços. O LB geralmente é hardware dedicado, como F5, ou baseado em software, como VS, Haproxy, etc. Há uma tabela de mapeamento de endereços para todos os serviços no LB. Quando o consumidor do serviço chama um serviço de destino, inicia primeiro uma solicitação ao LB. O LB usa uma determinada política (como Round-Robin) para carregar o equilíbrio da solicitação no serviço de destino.
O surgimento de microsserviços fornece outra idéia para a implementação do LB: integrar as funções da LB no processo de consumidores de serviço na forma de bibliotecas, em vez de fornecidas por um dispositivo ou servidor centralizado. Esta solução é chamada de balanceamento de carga suave ou balanceamento de carga do cliente. Na nuvem de primavera, em conjunto com a função de registro de serviço da Eureka, o subprojeto da faixa de opções implementa o balanceamento de carga para o cliente restante.
Sirva os consumidores com fita de nuvem de primavera
Crie um novo projeto de consumidor-tutorial da nuvem de mola
Crie um novo sub-projeto-consumidor da nuvem de mola-nuvem
Adicione dependências de fita e Eureka
<Dependences> <pendency> <puperiD> org.springframework.cloud </groupiD> <TRATIFACTID> Spring-cloud-starter-eureka </artifactId> </dependency> <pendencency> <puridid> org.springframework.cloud </proupid> <ArtifactId> <ppringerf art springf) <PuerpId> org.springframework.boot </frupid> <TRAFACTID> Spring-boot-Starter-Web </stutifactId> </pendesency> </dependências>
Configurar ApplicationIn.Properties, Endereço do Centro de Registro
spring.application.name = consumerServer.port = 30001eureka.client.service-url.defaultZone = http: // localhost: 10001/eureka/, http: // lochost: 10002/eureka/
Escreva UserController, Adicione @loadBalanced Anotation, Ativar balanceamento de carga de fita
@Controlador @requestmapping ("user") public class UserController {@Bean @loadBalanced RestTemplate initrestTemplate () {return new Resttemplate (); } @AUTOWIRed Private Resttemplate Resttemplate; @RequestMapping ("Add") @ResponseBody Public String Add (String UserName, String Age) {return RestTemplate.getForentity ("http: // produtor/user/add", string.class, nome de usuário, idade) .getbody (); }}Escreva o ConsumerApplication, adicione @enableeurekaclient, Ativar registro de serviço
@Enableeurekaclient@springbootApplicationPublic Classe ConsumerApplication {public static void main (string [] args) {springApplication.run (consumerApplication.class, args); }}Produtor de implantação de cluster
Para simular o produtor do cluster, o novo Application-Profile1.Properties e o Application-Profile2.Properties são criados no projeto do produtor.
Application-Profile1.Properties
spring.application.name = prodserServer.port = 20001eureka.client.service-url.defaultZone = http: // localhost: 10001/eureka/, http: // lochost: 10002/eureka/
Application-Profile2.Properties
spring.application.name = prodserServer.port = 20002eureka.client.service-url.defaultzone = http: // localhost: 10001/eureka/, http: // lochost: 10002/eureka/
Para testar o efeito de carga, digitamos a porta do serviço chamado
@Controlador@requestmapping ("user") classe pública UserController {private logger logger = LoggerFactory.getLogger (getClass ()); @Autowired Private Discoveryclient Client; @RequestMapping ("Add") @ResponseBody Public String addUser (String UserName, String Age) {return "Sucesso de" + client.getLocalServiceInstance (). }}Inicie o teste
Inicie o Centro de Registro
Configure perfis ativos para perfil1 e perfil2, respectivamente, inicie duas vezes e preencha a inicialização do serviço do cluster do registro.
Inicie um provedor de serviços
Inicie o provedor de serviços da mesma maneira que acima.
Comece a servir os consumidores
O provedor de serviços pode ser feito de forma autônoma, e a Aplicação do Consumidor pode ser iniciada normalmente.
verificar
Digite http: // localhost: 30001/usuário/add no navegador
Visite novamente:
Pode -se observar que nosso serviço de chamadas de balanceamento de carga foi bem -sucedido e o padrão é o balanceamento de carga de acordo com o treinamento de rotação.
Resumir
Este artigo apresenta e conclui a chamada para usar a fita da nuvem da primavera para o balanceamento de carga do cliente.
Em seguida, continuaremos a introduzir como usar a Spring Cloud para monitoramento de serviços.
Download do código -fonte
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.