Edge for Private Cloud v4.18.01
מידע על גורם הרפליקציה של Cassandra
Cassandra מאחסנת רפליקות של נתונים במספר צמתים כדי להבטיח אמינות ועמידות לכשלים. שיטת היצירה של רפליקות בכל מרחבי מפתחות של Edge קובעת את הצמתים שבהם הן ממוקמות.
המספר הכולל של רפליקות במרחב מפתחות באשכול Cassandra נקרא גורם הרפליקציה של מרחב המפתחות. אם גורם השכפול הוא אחד, המשמעות היא שיש עותק אחד בלבד של כל שורה באשכול Cassandra. גורם רפליקציה של שני משמעו שיש שני עותקים של כל שורה, כאשר כל עותק נמצא בצומת שונה. כל הרפליקות חשובות באותה מידה. אין רפליקת ראשית או רפליקת מאסטר.
במערכת ייצור עם שלושה צמתים או יותר של Cassandra בכל מרכז נתונים, גורם הרפליקה שמוגדר כברירת מחדל למרחב המפתחות של Edge הוא שלוש. ככלל, מקדם היצירה של עותקים לא אמור לחרוג ממספר הצמתים של Cassandra באשכול.
כדי להציג את הסכימה של Cassandra, שבה מוצג גורם השכפול לכל מרחבי המפתחות של Edge:
- מתחברים לצומת של Cassandra.
- מריצים את הפקודה הבאה:
> /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"
כאשר
$(hostname -i)
מנותבת לכתובת ה-IP של צומת Cassandra. אפשר גם להחליף את$(hostname -i)
בכתובת ה-IP של הצומת.
לכל מרחבי מפתחות יוצג פלט בפורמט:
create keyspace kms with placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {dc-1 : 3} and durable_writes = true;
אפשר לראות שבמרכז הנתונים 1, dc-1
, גורם הרפליקה שמוגדר כברירת מחדל למרחב המפתחות kms
הוא שלוש, בהתקנה עם שלושה צמתים של Cassandra.
אם מוסיפים עוד צמתים של Cassandra לאשכול, גורם ברירת המחדל של הרפליקציה לא מושפע.
לדוגמה, אם מגדילים את מספר הצמתים של Cassandra לשישה, ומשאירים את גורם הרפליקציה לשלושה, אי אפשר לוודא שלכל הצמתים של Cassandra יש עותק של כל הנתונים. אם צומת מסוים מושבת, ככל שגורם היצירה של העותקים גבוה יותר, כך יש סבירות גבוהה יותר שהנתונים בצומת קיימים באחד מהצומתים הנותרים. החיסרון של גורם שכפול גבוה יותר הוא זמן אחזור ארוך יותר בכתיבה של נתונים.
מידע על רמת העקביות ב-Cassandra
רמת העקביות של Cassandra מוגדרת כמספר הצמתים המינימלי ב-Cassandra שצריך לאשר פעולת קריאה או כתיבה כדי שהפעולה תחשב כפעולה מוצלחת. אפשר להקצות רמות עקביות שונות למרחבי מפתחות שונים ב-Edge.
כשמתחברים ל-Cassandra לצורך פעולות קריאה וכתיבה, בדרך כלל צמתים של Message Processor ושל שרת ניהול משתמשים בערך LOCAL_QUORUM
ב-Cassandra כדי לציין את רמת העקביות של מרחב מפתחות. עם זאת, במרחבי מפתחות מסוימים מוגדרת רמת עקביות של אחת.
החישוב של הערך של LOCAL_QUORUM
למרכז נתונים הוא:
LOCAL_QUORUM = (replication_factor/2) + 1
כפי שמתואר למעלה, ברירת המחדל של מקדם השכפול בסביבת ייצור של Edge עם שלושה צמתים של Cassandra היא שלוש. לכן, ערך ברירת המחדל של LOCAL_QUORUM
=
(3/2) +1 = 2 (הערך מעוגל כלפי מטה למספר שלם).
כש-LOCAL_QUORUM
= 2, לפחות שניים משלושת צמתים של Cassandra במרכז הנתונים חייבים להגיב לפעולה של קריאה/כתיבה כדי שהפעולה תצליח. לכן, באשכולות Cassandra עם שלושה צמתים, האשכול יכול לסבול פגיעה בצומת אחד בכל מרכז נתונים.
כשמציינים את רמת העקביות כ-LOCAL_QUORUM
, Edge ימנע את זמן האחזור שנדרש לאימות פעולות במספר מרכזי נתונים. אם במרחב המפתחות נעשה שימוש בערך QUORUM
של Cassandra בתור רמת העקביות, פעולות הקריאה/כתיבה יצטרכו לעבור אימות בכל מרכזי הנתונים.
כדי לראות את רמת העקביות שבה משתמשים צמתים של מעבד הודעות Edge או של שרת ניהול:
- מתחברים לצומת של מעבד הודעות.
- עוברים לספרייה /opt/apigee/edge-message-processor/conf:
> cd /opt/apigee/edge-message-processor/conf
- כדי לשמור על עקביות בכתיבה:
> grep -ri "write.consistencylevel" *
- לצורך עקביות בקריאה:
> grep -ri "read.consistencylevel" *
- מתחברים לצומת של שרת הניהול.
- שינוי לספרייה /opt/apigee/edge-management-server/conf:
> cd /opt/apigee/edge-management-server/conf
- חוזרים על שלבים 3 ו-4.
אם מוסיפים לצומת עוד צמתים של Cassandra, רמת העקביות לא מושפעת.