logo

Zuul API Gateway

Què és Zuul?

Zuul Server és una aplicació de passarel·la API. Gestiona totes les sol·licituds i realitza l'encaminament dinàmic de les aplicacions de microservei. Funciona com a porta d'entrada per a totes les peticions. També es coneix com Servidor Edge.

Zuul està creat per habilitar encaminament dinàmic, supervisió, resiliència, i seguretat. També pot dirigir les sol·licituds a múltiples Grups d'Amazon Auto Scaling .

Per exemple, /api/products estan mapejats a producte servei i /api/usuari està assignat a usuari servei. El servidor Zuul encamina dinàmicament les sol·licituds a l'aplicació backend corresponent.

Per què fem servir Zuul?

El volum i la varietat del trànsit de l'API de Netflix de vegades donen lloc a problemes de producció que sorgeixen ràpidament i sense previ avís. Per tant, necessitem un sistema que ens permeti canviar ràpidament el comportament per reaccionar davant aquestes situacions.

Zuul ofereix una varietat de diferents tipus de filtres que ens permet aplicar de manera ràpida i àgil la funcionalitat al nostre servei de punta. Els filtres fan les funcions següents:

    Autenticació i seguretat:Proporciona requisits d'autenticació per a cada recurs.
    Informació i seguiment:Fa un seguiment de dades i estadístiques significatives que ens donen una visió precisa de la producció.
    Encaminament dinàmic:Encamina dinàmicament les sol·licituds a diferents clústers de suport segons sigui necessari.Proves d'estrès:Augmenta el trànsit a un clúster per provar el rendiment.Descàrrega:Assigna capacitat per a cada tipus de sol·licitud i elimina una sol·licitud que supera el límit.Tractament de la resposta estàtica:Crea algunes respostes directament a la vora en lloc de reenviar-les a un clúster intern.Resiliència multiregional:Encamina les sol·licituds a les regions d'AWS per tal de diversificar el nostre ús d'ELB.

Components Zuul

Components Zuul 2.x:

    zuul-core:És una biblioteca que conté la funcionalitat bàsica de Zuul 2.0.zuul-sample:És una aplicació de controlador de mostra per a Zuul 2.0

Components Zuul 1.x:

    zuul-core:Defineix la funcionalitat bàsica.zuul-simple-webapp:Una aplicació web que mostra un exemple senzill de com crear una aplicació amb zuul-core.zuul-netflix:És una biblioteca que afegeix altres components NetflixOSS a Zuul.zuul-netflix-webapp:És una aplicació web que empaqueta zuul-core i zuul-netflix junts.

Configuració del servidor Zuul API Gateway

N'hi ha tres passos per configurar el Zuul API Gateway:

  • Creeu un component per a Zuul API Gateway
  • Decidiu les coses que hauria de fer Zuul API Gateway
  • Totes les sol·licituds importants estan configurades per passar per la passarel·la de l'API Zuul

Seguiu els passos per configurar el servidor Zuul API Gateway.

Pas 1: Obert Inicialització de primavera https://start.spring.io .

Pas 2: Proporcioneu el Grup nom. Hem proporcionat com.javatpoint.microservices.

Pas 3: Proporcioneu el Artefacte. Hem proporcionat netflix-zuul-api-gateway-server.

Pas 4: Afegiu les dependències següents: Zuul, Eureka Discovery, actuador, i DevTools.

Zuul API Gateway

Pas 5: Feu clic a Generar botó. Comença a empaquetar el projecte cremallera fitxer i descarregar-lo.

Zuul API Gateway

Pas 6: Extracció el fitxer zip i enganxeu-lo a l'espai de treball de Spring Tool Suite.

Pas 7: importar el projecte a l'IDE STS.

Fitxer -> Importa -> Projectes Maven existents -> Navega -> Selecciona netflix-zuul-api-gateway-server -> Seleccioneu Carpeta -> Finalitza

Es necessita un temps per importar.

Pas 8: Obriu el NetflixZuulApiGatewayServerApplication.java fitxer i habiliteu el proxy zuul i el client de descobriment mitjançant les anotacions @EnableZuulProxy i @EnableDiscoveryClient, respectivament .

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); } } 

Pas 9: Obert application.properties fitxer i configureu el fitxer nom de l'aplicació, port, i servidor de noms eureka .

application.properties

 spring.application.name=netflix-zuul-api-gateway-server server.port=8765 eureka.client.service-url.default-zone=http://localhost:8765/eureka 
Feu clic aquí per descarregar netflix-zuul-api-gateway-server