logo

Zuul API Gateway

Hva er Zuul?

Zuul Server er en API Gateway-applikasjon. Den håndterer alle forespørsler og utfører dynamisk ruting av mikrotjenesteapplikasjoner. Den fungerer som en inngangsdør for alle forespørsler. Det er også kjent som Edge Server.

Zuul er bygget for å aktivere dynamisk ruting, overvåking, elastisitet, og sikkerhet. Den kan også rute forespørslene til flere Amazon Auto Scaling Groups .

For eksempel, /api/produkter er kartlagt til produkt service og /api/bruker er kartlagt til bruker service. Zuul-serveren ruter forespørslene dynamisk til den respektive backend-applikasjonen.

Hvorfor bruker vi Zuul?

Volumet og variasjonen av Netflix API-trafikk resulterer noen ganger i produksjonsproblemer som oppstår raskt og uten forvarsel. Så vi trenger et system som lar oss raskt endre atferd for å reagere på disse situasjonene.

Zuul tilbyr en rekke forskjellige typer filtre som lar oss raskt og smidig bruke funksjonalitet til vår edge-tjeneste. Filtrene utfører følgende funksjoner:

    Autentisering og sikkerhet:Det gir autentiseringskrav for hver ressurs.
    Innsikt og overvåking:Den sporer meningsfulle data og statistikk som gir oss en nøyaktig oversikt over produksjonen.
    Dynamisk ruting:Den ruter forespørslene dynamisk til forskjellige støttede klynger etter behov.Stresstesting:Det øker trafikken til en klynge for å teste ytelsen.Lastnedgang:Den tildeler kapasitet for hver type forespørsel og dropper en forespørsel som går over grensen.Håndtering av statisk respons:Den bygger noen svar direkte på kanten i stedet for å videresende dem til en intern klynge.Resiliens i flere regioner:Den ruter forespørsler på tvers av AWS-regioner for å diversifisere ELB-bruken vår.

Zuul-komponenter

Zuul 2.x komponenter:

    zuul-core:Det er et bibliotek som inneholder kjernefunksjonaliteten til Zuul 2.0.zuul-eksempel:Det er et eksempel på driverapplikasjon for Zuul 2.0

Zuul 1.x komponenter:

    zuul-core:Den definerer kjernefunksjonaliteten.zuul-simple-webapp:En nettapp som viser et enkelt eksempel på hvordan man bygger en applikasjon med zuul-core.zuul-netflix:Det er et bibliotek som legger til andre NetflixOSS-komponenter til Zuul.zuul-netflix-webapp:Det er en webapp som pakker zuul-core og zuul-netflix sammen.

Sette opp Zuul API Gateway Server

Det er tre trinn for å sette opp Zuul API Gateway:

  • Opprett en komponent for Zuul API Gateway
  • Bestem deg for hva Zuul API Gateway skal gjøre
  • Alle viktige forespørsler er konfigurert til å gå gjennom Zuul API Gateway

Følg trinnene for å konfigurere Zuul API Gateway-serveren.

Trinn 1: Åpen Spring Initializr https://start.spring.io .

Steg 2: Gi Gruppe Navn. Vi har gitt com.javatpoint.microservices.

Trinn 3: Gi Gjenstand. Vi har gitt netflix-zuul-api-gateway-server.

Trinn 4: Legg til følgende avhengigheter: Zuul, Eureka Discovery, Aktuator, og DevTools.

Zuul API Gateway

Trinn 5: Klikk på generere knapp. Det begynner å pakke prosjektet inn glidelås fil og last den ned.

Zuul API Gateway

Trinn 6: Pakk ut zip-filen og lim den inn i Spring Tool Suites arbeidsområde.

Trinn 7: Importer prosjektet i STS IDE.

Fil -> Importer -> Eksisterende Maven-prosjekter -> Bla gjennom -> Velg netflix-zuul-api-gateway-server -> Velg mappe -> Fullfør

Det tar litt tid å importere.

Trinn 8: Åpne NetflixZuulApiGatewayServerApplication.java fil og aktiver zuul proxy og oppdagelsesklient ved å bruke merknadene @EnableZuulProxy og @EnableDiscoveryClient, hhv .

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

Trinn 9: Åpen applikasjonsegenskaper fil og konfigurer programnavn, port, og eureka navneserver .

applikasjonsegenskaper

 spring.application.name=netflix-zuul-api-gateway-server server.port=8765 eureka.client.service-url.default-zone=http://localhost:8765/eureka 
Klikk her for å laste ned netflix-zuul-api-gateway-server