logo

Zuul API Gateway

Vad är Zuul?

Zuul Server är en API Gateway-applikation. Den hanterar alla förfrågningar och utför dynamisk routing av mikrotjänstapplikationer. Den fungerar som en ytterdörr för alla önskemål. Det är också känt som Edge Server.

Zuul är byggd för att möjliggöra dynamisk routing, övervakning, motståndskraft, och säkerhet. Det kan också dirigera förfrågningarna till flera Amazons automatiska skalningsgrupper .

Till exempel, /api/produkter är mappade till produkt service och /api/användare är mappad till användare service. Zuul-servern dirigerar dynamiskt förfrågningarna till respektive backend-applikation.

Varför använder vi Zuul?

Volymen och variationen av Netflix API-trafik leder ibland till produktionsproblem som uppstår snabbt och utan förvarning. Så vi behöver ett system som gör att vi snabbt kan ändra beteende för att reagera på dessa situationer.

Zuul erbjuder en rad olika typer av filter som gör att vi snabbt och smidigt kan tillämpa funktionalitet på vår edge-tjänst. Filtren utför följande funktioner:

    Autentisering och säkerhet:Den tillhandahåller autentiseringskrav för varje resurs.
    Insikter och övervakning:Den spårar meningsfull data och statistik som ger oss en korrekt bild av produktionen.
    Dynamisk routing:Den dirigerar dynamiskt förfrågningarna till olika backade kluster efter behov.Stresstest:Det ökar trafiken till ett kluster för att testa prestanda.Belastning:Den tilldelar kapacitet för varje typ av begäran och släpper en begäran som går över gränsen.Hantering av statisk svar:Det bygger några svar direkt vid kanten istället för att vidarebefordra dem till ett internt kluster.Resiliens i flera regioner:Den dirigerar förfrågningar över AWS-regioner för att diversifiera vår ELB-användning.

Zuul-komponenter

Zuul 2.x komponenter:

    zuul-kärna:Det är ett bibliotek som innehåller kärnfunktionaliteten i Zuul 2.0.zuul-prov:Det är ett exempel på drivrutinsapplikation för Zuul 2.0

Zuul 1.x komponenter:

    zuul-kärna:Den definierar kärnfunktionaliteten.zuul-simple-webapp:En webbapp som visar ett enkelt exempel på hur man bygger en applikation med zuul-core.zuul-netflix:Det är ett bibliotek som lägger till andra NetflixOSS-komponenter till Zuul.zuul-netflix-webapp:Det är en webbapp som paketerar zuul-core och zuul-netflix tillsammans.

Konfigurera Zuul API Gateway Server

Det finns tre steg för att ställa in Zuul API Gateway:

  • Skapa en komponent för Zuul API Gateway
  • Bestäm de saker som Zuul API Gateway ska göra
  • Alla viktiga förfrågningar är konfigurerade att passera genom Zuul API Gateway

Följ stegen för att konfigurera Zuul API Gateway-servern.

Steg 1: Öppen Spring Initializr https://start.spring.io .

Steg 2: Tillhandahålla Grupp namn. Vi har tillhandahållit com.javatpoint.microservices.

Steg 3: Tillhandahålla Artefakt. Vi har tillhandahållit netflix-zuul-api-gateway-server.

Steg 4: Lägg till följande beroenden: Zuul, Eureka Discovery, ställdon, och DevTools.

Zuul API Gateway

Steg 5: Klicka på Generera knapp. Det börjar packa in projektet blixtlås fil och ladda ner den.

Zuul API Gateway

Steg 6: Extrahera zip-filen och klistra in den i Spring Tool Suites arbetsyta.

Steg 7: Importera projektet i STS IDE.

Arkiv -> Importera -> Befintliga Maven-projekt -> Bläddra -> Välj netflix-zuul-api-gateway-server -> Välj mapp -> Slutför

Det tar lite tid att importera.

Steg 8: Öppna NetflixZuulApiGatewayServerApplication.java fil och aktivera zuul proxy och upptäcktsklient genom att använda anteckningarna @EnableZuulProxy och @EnableDiscoveryClient, respektive .

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

Steg 9: Öppen applikationsegenskaper fil och konfigurera applikationsnamn, port, och eureka namnserver .

applikationsegenskaper

 spring.application.name=netflix-zuul-api-gateway-server server.port=8765 eureka.client.service-url.default-zone=http://localhost:8765/eureka 
Klicka här för att ladda ner netflix-zuul-api-gateway-server