Edge for Private Cloud v4.18.05
מידע על גורם השכפול של 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 לשישה, אבל תשארו את גורם היצירה של העותקים ב-3, לא תוכלו להבטיח שלכל הצמתים של 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 או של שרת ניהול:
- מתחברים לצומת של Message Processor.
- עוברים לספרייה /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, רמת העקביות לא מושפעת.