JHipster עם אדריכלות מיקרו-שירות

1. הקדמה

במחקר זה נחקור דוגמה מעניינת עם JHipster - בניית ארכיטקטורת מיקרו-שירותים פשוטה. אנו נראה כיצד לבנות ולפרוס את כל החלקים הנדרשים, ובסופו של דבר יהיה לנו יישום מיקרו-שירות מלא.

אם אתה חדש ב- JHipster, אנא בדוק במאמר ההיכרות שלנו לפני שתמשיך להבין טוב יותר את היסודות של כלי ייצור הפרויקט הזה.

2. מונוליטי מול מיקרו-שירות

במאמר הראשוני שלנו, המחשנו כיצד ליצור ולהפעיל את האתחול של יישום מונוליטי וקל יחסית לתחזוקה.

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

JHipster תטפל ברוב הקשיים בניהול יישומי המיקרו-שירות, בעזרת כלי קוד פתוח מודרניים כמו שרת Eureka של נטפליקס והקונסול של Hashicorp.

יש, כמובן, כמה דברים שכדאי לקחת בחשבון, כמו כמה התחום שלנו גדול או מסובך, עד כמה היישום שלנו קריטי ואיזה רמות זמינות אנחנו רוצים שיהיו לנו, האם אנחנו הולכים לארח את השירותים שלנו בשרתים ובמיקומים שונים וכו '. מטרת הכלים הללו היא כמובן שתמורות אלה אפשריות וקלות לניהול.

2.1. רכיבי מיקרו-שירות של JHipster

כשעובדים על ארכיטקטורה של Microservice עם JHipster, נצטרך לבנות ולפרוס לפחות שלושה פרויקטים שונים: רישום JHipster, Gateway Microservice ולפחות יישום Microservice אחד.

מרשם JHipster הוא חלק חיוני בארכיטקטורת המיקרו-שירותים. זה קושר את כל שאר המרכיבים ומאפשר להם לתקשר זה עם זה.

היישום Microservice מכיל את הקוד האחורי. לאחר הפעלתו הוא יחשוף את ה- API עבור הדומיין שהוא עוסק בו. ארכיטקטורה של מיקרו-שירות עשויה להיות מורכבת מיישומי מיקרו-שירות רבים, שכל אחד מהם מכיל כמה ישויות קשורות וכללים עסקיים.

ושער Microservice מכיל את כל קוד החזית (Angular) והוא יצרוך את ה- API שנוצר על ידי כל הקבוצה של יישומי מיקרו שירותים:

3. התקנה

לכל הפרטים אודות תהליך ההתקנה, עיין במאמר ההיכרות שלנו ב- JHipster.

4. יצירת פרויקט מיקרו-שירות

עכשיו נתקין את שלושת מרכיבי הליבה של פרויקט המיקרו-שירות שלנו.

4.1. התקנת הרישום של JHipster

מכיוון שהרישום של JHipster הוא JHipster רגיל, אז אנחנו רק צריכים להוריד ולהפעיל אותו. אין צורך לשנות אותו:

git clone //github.com/jhipster/jhipster-registry cd jhipster-registry && ./mvnw

זה ישכפל את ג'יפסטר-רישום פרויקט מ- GitHub והפעל את היישום. ברגע שזה יופעל בהצלחה, נוכל לבקר // localhost: 8761 / ולהיכנס עם המשתמש מנהל וסיסמא מנהל:

4.2. התקנת יישום Microservice

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

# צור ספרייה לאפליקציה ותקליטור אליה mkdir car-app && cd car-app # הפעל את אשף jhipster יו jhipster

לאחר האשף, בואו פעל לפי ההוראות ליצירת יישום מסוג Microservice בשם carapp. כמה פרמטרים רלוונטיים אחרים הם:

  • נמל: 8081
  • חֲבִילָה: com.car.app
  • אימות: JWT
  • גילוי שירות: רישום JHipster

צילום המסך הבא מראה את מערך האפשרויות השלם:

עכשיו נוסיף a אוטו ישות ליישום שלנו:

# מריץ אשף יצירת ישויות יו jhipster: מכונית ישות

אשף יצירת הישות יופעל. עלינו לבצע את ההוראות ליצירת ישות בשם אוטו עם שלושה שדות: עשה, דֶגֶם, ו מחיר.

לאחר שתסיים, היישום הראשון שלנו ב- Microservice הושלם. אם נסתכל על הקוד שנוצר, נבחין כי אין JavaScript, HTML, CSS או קוד חזיתי כלשהו. כל אלה יופקו לאחר יצירת שער ה- Microservice. כמו כן, עיין בקובץ README למידע חשוב אודות הפרויקט ופקודות שימושיות.

לסיום, בוא נפעיל את הרכיב החדש שנוצר:

./mvnw

לפני הפעלת הפקודה הנ"ל, עלינו לוודא שה- jhipster-registry הרכיב פועל. אחרת, נקבל שגיאה.

אם הכל התנהל לפי התוכנית, שלנו אפליקציה לרכב יתחיל, וה jhipster-registry יומן יודיע לנו שהאפליקציה נרשמה בהצלחה:

מופע רשום CARAPP / carapp: 746e7525dffa737747dcdcee55ab43f8 עם סטטוס UP (שכפול = נכון)

4.3. התקנת שער Microservice

עכשיו החלק הקדמי. ניצור שער Microservice ונציין בפניו שיש לנו ישות על רכיב קיים שעבורו אנו רוצים ליצור את קוד החזית:

# צור ספריה לאפליקציית השער שלנו mkdir gateway-app && cd gateway-app # מריץ את אשף JHipster יו jhipster

בואו פעל לפי ההוראות ליצירת יישום מסוג שער Microservice. אנחנו נקרא ליישום כְּנִיסָהובחר באפשרויות הבאות עבור הפרמטרים האחרים:

  • נמל: 8080
  • חֲבִילָה: com.gateway
  • auth: JWT
  • גילוי שירות: רישום JHipster

לפניכם סיכום מערך הפרמטרים השלם:

נעבור ליצירת ישויות:

# מפעיל אשף יצירת ישויות יו jhipster: מכונית ישות

כשנשאל אם אנו רוצים ליצור משירות מיקרו קיים, בחר כן, ואז הקלד את הנתיב היחסי ל- אפליקציה לרכב ספריית שורשים (למשל: ../car-app). לבסוף, כשנשאל אם אנו רוצים לעדכן את הישות, בחר כן, התחדש מחדש את הישות.

JHipster ימצא את Car.json קובץ המהווה חלק מיישום ה- Microservice הקיים שיצרנו קודם וישתמש במטא-נתונים הכלולים בקובץ זה כדי ליצור את כל קוד ממשק המשתמש הדרוש עבור אותה ישות:

מצאתי את קובץ התצורה .jhipster / Car.json, ישות יכולה להיווצר באופן אוטומטי!

הגיע הזמן להפעיל את אפליקציית שער ובדוק אם הכל עובד:

# מתחיל את רכיב אפליקציית השער ./mvnw

בואו ננווט אל // localhost: 8080 / ונכנס עם המשתמש מנהל וסיסמא מנהל. בתפריט העליון עלינו לראות פריט אוטו שייקח אותנו לדף רשימת המכוניות. הכל טוב!

4.4. יצירת יישום מיקרו-שירות שני

לאחר מכן, בואו ניקח את המערכת שלנו צעד אחד קדימה ו צור רכיב שני מסוג היישום Microservice. רכיב חדש זה ינהל סוחרי רכב, לכן נוסיף ישות הנקראת סוֹחֵר לזה.

בוא ניצור ספריה חדשה, נעבור אליה ונפעיל את יו ג'יפסטר פקודה:

mkdir dealer-app && cd dealer-app יו jhipster

לאחר מכן אנו מקלידים דילרפ כשם היישום ובחר יציאה 8082 כדי שהיא תפעל (קריטי שמדובר ביציאה שונה מזו שאנו משתמשים בה jhipster-רישום ו אפליקציה לרכב).

עבור הפרמטרים האחרים, אנו יכולים לבחור כל אפשרות שנרצה. זכור שמדובר בשירות מיקרו נפרד, כך שהוא יכול להשתמש בסוגי בסיסי נתונים שונים, באסטרטגיית מטמון ובבדיקות מאשר ה- אפליקציה לרכב רְכִיב.

בואו נוסיף כמה שדות ל סוֹחֵר יֵשׁוּת. לדוגמה שֵׁם ו כתובת:

# מריץ את אשף הישות ליצור יו jhipster: סוחר ישויות

אל לנו לשכוח לנווט אל אפליקציית שער ולהגיד לו ליצור את קוד החזית עבור ה- סוֹחֵר יֵשׁוּת:

# נווט לספריית השורש של אפליקציית השער gateway. / Gateway-app # מריץ את אשף הישות ליצור יו jhipster: סוחר ישויות

לבסוף, רוץ ./mvnw על אפליקציית סוחר ספריית שורש להפעלת הרכיב.

לאחר מכן, אנו יכולים לבקר ביישום השער שלנו בכתובת // localhost: 8080 ולרענן את הדף כדי לראות את פריט התפריט החדש שנוצר עבור ישות הסוחרים.

לפני שנסכם, בואו נסתכל על ה- jhipster-registry יישום שוב ב // localhost: 8761 /. לחץ על פריט התפריט יישומים כדי לבדוק שכל שלושת המרכיבים שלנו זוהו ונרשמו בהצלחה:

זהו זה! יצרנו ארכיטקטורה מתוחכמת המורכבת מאפליקציית Gateway אחת עם כל הקוד הקדמי המגובה בשני מיקרו-שירותים תוך מספר דקות בלבד.

5. מסקנה

הפעלת פרויקט אדריכלות של מיקרו-שירות עם JHipster היא די קלה; עלינו ליצור כמה שיותר יישומי Microservice שאנחנו צריכים ושער Microservice אחד ואנחנו מוכנים לצאת לדרך.

אתה יכול לחקור את המסגרת הלאה באתר הרשמי של JHipster.

כמו תמיד, קוד הקוד של אפליקציית הרכב, אפליקציית הסוחרים ואפליקציית השער שלנו זמין ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found