logo

שער API של Zuul

מה זה זוול?

Zuul Server הוא אפליקציית API Gateway. הוא מטפל בכל הבקשות ומבצע ניתוב דינמי של יישומי מיקרו-שירות. זה עובד כדלת כניסה לכל הבקשות. זה ידוע גם בשם שרת אדג'.

Zuul בנוי לאפשר ניתוב דינמי, ניטור, גמישות, ו בִּטָחוֹן. זה יכול גם לנתב את הבקשות לכמה קבוצות קנה מידה אוטומטי של אמזון .

לדוגמה, /api/products ממופים ל- מוצר שירות ו /api/user ממופה ל- מִשׁתַמֵשׁ שֵׁרוּת. שרת Zuul מנתב באופן דינמי את הבקשות ליישום הקצה המתאים.

מדוע אנו משתמשים ב-Zul?

הנפח והמגוון של תעבורת ה-API של Netflix גורמים לפעמים לבעיות ייצור המתעוררות במהירות וללא אזהרה. אז אנחנו צריכים מערכת שמאפשרת לנו לשנות התנהגות במהירות כדי להגיב למצבים האלה.

Zuul מספקת מגוון סוגים שונים של מסננים המאפשר לנו ליישם במהירות ובזריזות פונקציונליות לשירות הקצה שלנו. המסננים מבצעים את הפונקציות הבאות:

    אימות ואבטחה:הוא מספק דרישות אימות עבור כל משאב.
    תובנות וניטור:הוא עוקב אחר נתונים וסטטיסטיקות משמעותיות שנותנות לנו מבט מדויק על הייצור.
    ניתוב דינמי:הוא מנתב באופן דינמי את הבקשות לאשכולות מגובים שונים לפי הצורך.מבחן לחץ:זה מגדיל את התעבורה לאשכול כדי לבדוק ביצועים.הפחתת עומסים:הוא מקצה קיבולת לכל סוג של בקשה ומפיל בקשה שחורגת מהגבול.טיפול בתגובה סטטית:זה בונה כמה תגובות ישירות בקצה במקום להעביר אותן לאשכול פנימי.חוסן רב אזורי:הוא מנתב בקשות על פני אזורי AWS על מנת לגוון את השימוש ב-ELB שלנו.

Zuul Components

רכיבי Zuul 2.x:

    zuul-core:זוהי ספרייה המכילה את פונקציונליות הליבה של Zuul 2.0.zuul-sample:זהו יישום מנהל התקן לדוגמה עבור Zuul 2.0

רכיבי Zuul 1.x:

    zuul-core:זה מגדיר את פונקציונליות הליבה.zuul-simple-webapp:אפליקציית אינטרנט המציגה דוגמה פשוטה כיצד לבנות אפליקציה עם zuul-core.zuul-netflix:זוהי ספרייה שמוסיפה רכיבי NetflixOSS אחרים ל- Zuul.zuul-netflix-webapp:זוהי אפליקציה אינטרנטית שאורזת את zuul-core ו-zuul-netflix יחד.

הגדרת Zuul API Gateway Server

יש שְׁלוֹשָׁה שלבים להגדרת שער ה-API Zuul:

  • צור רכיב עבור ה-Zuul API Gateway
  • החליטו על הדברים ש- Zuul API Gateway צריך לעשות
  • כל הבקשות החשובות מוגדרות לעבור דרך שער ה-API של Zuul

בצע את השלבים כדי להגדיר את שרת Zuul API Gateway.

שלב 1: לִפְתוֹחַ אתחול האביב https://start.spring.io .

שלב 2: ספק את קְבוּצָה שֵׁם. סיפקנו com.javatpoint.microservices.

שלב 3: ספק את חפץ. סיפקנו netflix-zuul-api-gateway-server.

שלב 4: הוסף את התלות הבאה: Zuul, Eureka Discovery, Actuator, ו DevTools.

שער API של Zuul

שלב 5: הקלק על ה לִיצוֹר לַחְצָן. זה מתחיל לארוז את הפרויקט לתוך רוכסן קובץ והורד אותו.

שער API של Zuul

שלב 6: חלץ את קובץ ה-zip והדבק אותו בסביבת העבודה של Spring Tool Suite.

שלב 7: ייבוא הפרויקט ב- STS IDE.

קובץ -> ייבוא ​​-> פרויקטים קיימים של Maven -> עיון -> בחר netflix-zuul-api-gateway-server -> בחר תיקיה -> סיום

לוקח קצת זמן לייבא.

שלב 8: פתח את ה NetflixZuulApiGatewayServerApplication.java קובץ ואפשר Zuul Proxy ו-Client Discovery באמצעות ההערות @EnableZuulProxy ו @EnableDiscoveryClient, בהתאמה .

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

שלב 9: לִפְתוֹחַ application.properties קובץ והגדר את שם אפליקציה, יציאה, ו שרת שמות eureka .

application.properties

 spring.application.name=netflix-zuul-api-gateway-server server.port=8765 eureka.client.service-url.default-zone=http://localhost:8765/eureka 
לחץ כאן כדי להוריד את netflix-zuul-api-gateway-server