logo

Gateway de API Zuul

O que é Zuul:

Zuul Server é um aplicativo API Gateway. Ele trata todas as solicitações e realiza o roteamento dinâmico de aplicações de microsserviços. Funciona como porta de entrada para todas as solicitações. Também é conhecido como Servidor de borda.

Zuul foi criado para permitir roteamento dinâmico, monitoramento, resiliência, e segurança. Ele também pode encaminhar as solicitações para vários Grupos do Amazon Auto Scaling .

Por exemplo, /api/produtos são mapeados para produtos serviço e /api/usuário está mapeado para o do utilizador serviço. O servidor Zuul roteia dinamicamente as solicitações para o respectivo aplicativo backend.

Por que usamos o Zuul?

O volume e a variedade do tráfego da API Netflix às vezes resultam em problemas de produção que surgem rapidamente e sem aviso prévio. Portanto, precisamos de um sistema que nos permita mudar rapidamente o comportamento para reagir a estas situações.

Zuul oferece uma variedade de diferentes tipos de filtros que nos permite aplicar funcionalidade de forma rápida e ágil ao nosso serviço de ponta. Os filtros executam as seguintes funções:

    Autenticação e Segurança:Ele fornece requisitos de autenticação para cada recurso.
    Insights e monitoramento:Ele rastreia dados e estatísticas significativas que nos dão uma visão precisa da produção.
    Roteamento Dinâmico:Ele roteia dinamicamente as solicitações para diferentes clusters com suporte, conforme necessário.Teste de estresse:Aumenta o tráfego para um cluster para testar o desempenho.Redução de carga:Ele aloca capacidade para cada tipo de solicitação e descarta uma solicitação que ultrapasse o limite.Tratamento de resposta estática:Ele cria algumas respostas diretamente na borda, em vez de encaminhá-las para um cluster interno.Resiliência multirregional:Ele roteia solicitações entre regiões da AWS para diversificar nosso uso de ELB.

Componentes Zuul

Componentes do Zuul 2.x:

    núcleo zuul:É uma biblioteca que contém a funcionalidade principal do Zuul 2.0.amostra zuul:É um exemplo de aplicativo de driver para Zuul 2.0

Componentes do Zuul 1.x:

    núcleo zuul:Ele define a funcionalidade principal.zuul-simple-webapp:Um aplicativo web que mostra um exemplo simples de como construir um aplicativo com zuul-core.zuul-netflix:É uma biblioteca que adiciona outros componentes NetflixOSS ao Zuul.zuul-netflix-webapp:É um webapp que empacota zuul-core e zuul-netflix juntos.

Configurando o servidor Zuul API Gateway

três etapas para configurar o Zuul API Gateway:

  • Crie um componente para o Zuul API Gateway
  • Decida o que o Zuul API Gateway deve fazer
  • Todas as solicitações importantes são configuradas para passar pelo Zuul API Gateway

Siga as etapas para configurar o servidor Zuul API Gateway.

Passo 1: Abrir Inicialização Spring https://start.spring.io .

Passo 2: Proporciona a Grupo nome. Nós fornecemos com.javatpoint.microservices.

Etapa 3: Proporciona a Artefato. Nós fornecemos servidor netflix-zuul-api-gateway.

Passo 4: Adicione as seguintes dependências: Zuul, Eureka Discovery, Atuador, e Ferramentas de desenvolvimento.

Gateway de API Zuul

Etapa 5: Clique no Gerar botão. Ele começa a empacotar o projeto em fecho eclair arquivo e baixe-o.

Gateway de API Zuul

Etapa 6: extrair o arquivo zip e cole-o na área de trabalho do Spring Tool Suite.

Etapa 7: importar o projeto no STS IDE.

Arquivo -> Importar -> Projetos Maven Existentes -> Navegar -> Selecionar servidor netflix-zuul-api-gateway -> Selecionar Pasta -> Concluir

Demora algum tempo para importar.

Etapa 8: Abra o NetflixZuulApiGatewayServerApplication.java arquivo e habilite o proxy zuul e o cliente de descoberta usando as anotações @EnableZuulProxy e @EnableDiscoveryClient, respectivamente .

NetflixZuulApiGatewayServerApplication.java

 package com.javatpoint.microservices.netflixzuulapigatewayserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @EnableZuulProxy @EnableDiscoveryClient @SpringBootApplication public class NetflixZuulApiGatewayServerApplication { public static void main(String[] args) { SpringApplication.run(NetflixZuulApiGatewayServerApplication.class, args); } } 

Etapa 9: Abrir aplicação.propriedades arquivo e configurar o nome do aplicativo, porta, e servidor de nomenclatura eureka .

aplicação.propriedades

 spring.application.name=netflix-zuul-api-gateway-server server.port=8765 eureka.client.service-url.default-zone=http://localhost:8765/eureka 
Clique aqui para baixar netflix-zuul-api-gateway-server