Edge for Private Cloud v4.18.05
מידע על גורם השכפול של Cassandra
Cassandra מאחסנת עותקים משוכפלים של נתונים בכמה צמתים כדי להבטיח אמינות ועמידות בפני תקלות. אסטרטגיית השכפול של כל מרחב מפתחות ב-Edge קובעת את הצמתים שבהם ממוקמים העותקים המשוכפלים.
המספר הכולל של הרפליקות של מרחב מפתחות באשכול Cassandra נקרא גורם הרפליקציה של מרחב המפתחות. אם פקטור הרפליקציה הוא 1, יש רק עותק אחד של כל שורה באשכול Cassandra. אם פקטור הרפליקציה הוא 2, יש שני עותקים של כל שורה, וכל עותק נמצא בצומת אחר. כל הרפליקות חשובות באותה מידה, ואין רפליקה ראשית או מאסטר.
במערכת ייצור עם שלושה צומתי 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 ל-6, אבל משאירים את פקטור הרפליקציה על 3, לא מבטיחים שלכל צומתי Cassandra יהיה עותק של כל הנתונים. אם צומת מושבת, פקטור רפליקציה גבוה יותר פירושו סבירות גבוהה יותר שהנתונים בצומת קיימים באחד מהצמתים שנותרו. החיסרון של פקטור רפליקציה גבוה יותר הוא זמן אחזור ארוך יותר בכתיבת נתונים.
מידע על רמת העקביות של Cassandra
רמת העקביות של Cassandra מוגדרת כמספר המינימלי של צומתי Cassandra שצריכים לאשר פעולת קריאה או כתיבה כדי שהפעולה תיחשב כמוצלחת. אפשר להקצות רמות עקביות שונות למרחבי מפתחות שונים ב-Edge.
כשמתחברים ל-Cassandra לפעולות קריאה וכתיבה, צומתי מעבד הבקשות ושרת הניהול בדרך כלל משתמשים בערך 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 לאשכול, רמת העקביות לא מושפעת.