מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית
לפני פריסת יישום אשכול, עליכם להשלים את ההכנות הבאות.
הפעלת יישום NocoBase במצב אשכול דורשת תמיכה מהתוספים הבאים:
| פונקציה | תוסף |
|---|---|
| מתאם מטמון | מובנה |
| מתאם אותות סנכרון | @nocobase/plugin-pubsub-adapter-redis |
| מתאם תור הודעות | @nocobase/plugin-queue-adapter-redis או @nocobase/plugin-queue-adapter-rabbitmq |
| מתאם נעילה מבוזרת | @nocobase/plugin-lock-adapter-redis |
| מקצה Worker ID | @nocobase/plugin-workerid-allocator-redis |
ראשית, אנא ודאו שקיבלתם רישיונות עבור התוספים הנ"ל (ניתן לרכוש את רישיונות התוספים המתאימים דרך פלטפורמת שירותי התוספים המסחריים).
רכיבי מערכת אחרים, מלבד מופע היישום עצמו, ניתנים לבחירה על ידי אנשי תפעול בהתאם לצרכים התפעוליים של הצוות.
מכיוון שמצב האשכול הנוכחי מיועד רק למופעי יישומים, מסד הנתונים תומך באופן זמני בצומת יחיד בלבד. אם יש לכם ארכיטקטורת מסד נתונים כמו Master-Slave, עליכם ליישם אותה בעצמכם באמצעות תווכה (middleware) ולוודא שהיא שקופה ליישום NocoBase.
מצב האשכול של NocoBase מסתמך על מספר רכיבי תווכה (middleware) כדי להשיג תקשורת ותיאום בין האשכולות, כולל:
כאשר כל רכיבי התווכה משתמשים ב-Redis, ניתן להפעיל שירות Redis יחיד בתוך הרשת הפנימית של האשכול (או Kubernetes). לחלופין, ניתן להפעיל שירות Redis נפרד עבור כל פונקציה (מטמון, אותות סנכרון, תור הודעות ונעילה מבוזרת).
המלצות גרסה
NocoBase דורש שימוש בספריית storage לאחסון קבצים הקשורים למערכת. במצב ריבוי צמתים, יש להרכיב דיסק ענן (או NFS) כדי לתמוך בגישה משותפת בין צמתים מרובים. אחרת, אחסון מקומי לא יסונכרן אוטומטית ולא יפעל כראוי.
בעת פריסה עם Kubernetes, אנא עיינו בסעיף פריסת Kubernetes: אחסון משותף.
מצב אשכול דורש איזון עומסים כדי לפזר בקשות, וכן לבצע בדיקות תקינות והעברת כשל (failover) של מופעי היישום. חלק זה יש לבחור ולהגדיר בהתאם לצרכים התפעוליים של הצוות.
כדוגמה ל-Nginx בהתקנה עצמית, הוסיפו את התוכן הבא לקובץ התצורה:
משמעות הדבר היא שבקשות עוברות פרוקסי הפוך ומפוזרות לצמתי שרתים שונים לצורך עיבוד.
עבור תווכת איזון עומסים המסופקת על ידי ספקי שירותי ענן אחרים, אנא עיינו בתיעוד התצורה הספציפי של הספק.
כל הצמתים באשכול צריכים להשתמש באותה תצורת משתני סביבה. בנוסף למשתני הסביבה הבסיסיים של NocoBase, יש להגדיר גם את משתני הסביבה הבאים הקשורים לתווכה:
כאשר היישום פועל על צומת מרובה ליבות, ניתן להפעיל את מצב ריבוי הליבות של הצומת:
אם אתם פורסים פודי יישומים ב-Kubernetes, תוכלו להתעלם מתצורה זו ולשלוט במספר מופעי היישום באמצעות מספר העותקים של הפוד.
מכיוון שחלק מהאוספים במערכת NocoBase משתמשים במזהים גלובליים ייחודיים כמפתחות ראשיים, נדרש מקצה Worker ID כדי להבטיח שכל מופע יישום באשכול יקבל Worker ID ייחודי, ובכך למנוע בעיות של התנגשות מפתחות ראשיים. טווח ה-Worker ID הנוכחי הוא 0-31, כלומר, אותו יישום תומך בהפעלה של עד 32 צמתים בו-זמנית. לפרטים נוספים על תכנון מזהה גלובלי ייחודי, עיינו ב- @nocobase/snowflake-id.
בדרך כלל, המתאמים הקשורים יכולים כולם להשתמש באותו מופע Redis, אך עדיף להשתמש במסדי נתונים שונים כדי למנוע בעיות פוטנציאליות של התנגשות מפתחות, לדוגמה:
נכון לשלב זה, כל תוסף משתמש במשתני סביבה משלו הקשורים ל-Redis. בעתיד, נשקול לאחד את השימוש ב-REDIS_URL כתצורת גיבוי.
אם אתם משתמשים ב-Kubernetes לניהול האשכול, תוכלו להגדיר את משתני הסביבה הנ"ל ב-ConfigMap או ב-Secret. לתוכן נוסף בנושא, עיינו בפריסת Kubernetes.
לאחר השלמת כל ההכנות הנ"ל, תוכלו לעבור לתהליכי תפעול כדי להמשיך ולנהל את מופעי היישום.