logo

Zuul API Gateway

Hvad er Zuul?

Zuul Server er en API Gateway-applikation. Den håndterer alle anmodninger og udfører den dynamiske routing af mikroserviceapplikationer. Den fungerer som en hoveddør til alle forespørgsler. Det er også kendt som Edge Server.

Zuul er bygget til at aktivere dynamisk routing, overvågning, robusthed, og sikkerhed. Det kan også dirigere anmodningerne til flere Amazon Auto Scaling Groups .

For eksempel, /api/produkter er kortlagt til produkt service og /api/bruger er kortlagt til bruger service. Zuul-serveren dirigerer anmodningerne dynamisk til den respektive backend-applikation.

Hvorfor bruger vi Zuul?

Mængden og variationen af ​​Netflix API-trafik resulterer nogle gange i produktionsproblemer, der opstår hurtigt og uden varsel. Så vi har brug for et system, der giver os mulighed for hurtigt at ændre adfærd for at reagere på disse situationer.

Zuul tilbyder en række forskellige typer filtre der giver os mulighed for hurtigt og smidigt at anvende funktionalitet til vores edge-service. Filtrene udfører følgende funktioner:

    Autentificering og sikkerhed:Det giver godkendelseskrav for hver ressource.
    Indsigt og overvågning:Den sporer meningsfulde data og statistikker, der giver os et præcist overblik over produktionen.
    Dynamisk routing:Det dirigerer anmodningerne dynamisk til forskellige understøttede klynger efter behov.Stresstest:Det øger trafikken til en klynge for at teste ydeevnen.Belastningstab:Den tildeler kapacitet for hver type anmodning og dropper en anmodning, der går over grænsen.Håndtering af statisk respons:Det bygger nogle svar direkte ved kanten i stedet for at videresende dem til en intern klynge.Resiliens i flere regioner:Det dirigerer anmodninger på tværs af AWS-regioner for at diversificere vores ELB-brug.

Zuul komponenter

Zuul 2.x komponenter:

    zuul-kerne:Det er et bibliotek, der indeholder kernefunktionaliteten i Zuul 2.0.zuul-sample:Det er en prøvedriverapplikation til Zuul 2.0

Zuul 1.x komponenter:

    zuul-kerne:Det definerer kernefunktionaliteten.zuul-simple-webapp:En webapp, der viser et simpelt eksempel på, hvordan man bygger en applikation med zuul-core.zuul-netflix:Det er et bibliotek, der tilføjer andre NetflixOSS-komponenter til Zuul.zuul-netflix-webapp:Det er en webapp, der pakker zuul-core og zuul-netflix sammen.

Opsætning af Zuul API Gateway Server

Der er tre trin til opsætning af Zuul API Gateway:

  • Opret en komponent til Zuul API Gateway
  • Beslut de ting, som Zuul API Gateway skal gøre
  • Alle de vigtige anmodninger er konfigureret til at passere gennem Zuul API Gateway

Følg trinene for at konfigurere Zuul API Gateway-serveren.

Trin 1: Åben Spring Initializr https://start.spring.io .

Trin 2: Giv den Gruppe navn. Vi har ydet com.javatpoint.microservices.

Trin 3: Giv den Artefakt. Vi har ydet netflix-zuul-api-gateway-server.

Trin 4: Tilføj følgende afhængigheder: Zuul, Eureka Discovery, Aktuator, og DevTools.

Zuul API Gateway

Trin 5: Klik på Frembringe knap. Det begynder at pakke projektet ind lynlås fil og download den.

Zuul API Gateway

Trin 6: Udtræk zip-filen og indsæt den i Spring Tool Suites arbejdsområde.

Trin 7: Importer projektet i STS IDE.

Fil -> Importer -> Eksisterende Maven-projekter -> Gennemse -> Vælg netflix-zuul-api-gateway-server -> Vælg Mappe -> Udfør

Det tager lidt tid at importere.

Trin 8: Åbn NetflixZuulApiGatewayServerApplication.java fil og aktiver zuul proxy og opdagelsesklient ved at bruge annoteringerne @EnableZuulProxy og @EnableDiscoveryClient, henholdsvis .

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

Trin 9: Åben applikationsegenskaber fil og konfigurer applikationsnavn, port, og eureka navngivningsserver .

applikationsegenskaber

 spring.application.name=netflix-zuul-api-gateway-server server.port=8765 eureka.client.service-url.default-zone=http://localhost:8765/eureka 
Klik her for at downloade netflix-zuul-api-gateway-server