מידע על גורם הרפליקציה של Cassandra
Cassandra מאחסנת רפליקות של נתונים במספר צמתים כדי להבטיח אמינות ועמידות לכשלים. אסטרטגיית הרפליקציה לכל מרחב מפתחות של Edge קובעת את הצמתים שבהם רפליקציות ממוקם.
המספר הכולל של רפליקות למרחב מפתחות בתוך אשכול של Cassandra נקרא גורם הרפליקציה של מרחב המפתחות. גורם רפליקציה של אחד פירושו שקיים רק גורם אחד של כל שורה באשכול קסנדרה. גורם רפליקציה של שניים פירושו שיש שני של כל שורה, כאשר כל עותק נמצא בצומת אחר. לכל הרפליקות יש חשיבות שווה; אין רפליקה ראשית או מאסטר.
במערכת ייצור עם שלושה צמתים של Cassandra או יותר בכל מרכז נתונים, ברירת המחדל גורם הרפליקציה במרחב המפתחות של Edge הוא שלושה. ככלל, גורם הרפליקציה לא יחרוג ממספר הצמתים של Cassandra באשכול.
כדי להציג את הסכימה של Cassandra, שבה מוצג גורם הרפליקציה של כל מרחב מפתחות של Edge:
- מתחברים לצומת של Cassandra.
- מריצים את הפקודה הבאה:
/opt/apigee/apigee-cassandra/bin/cqlsh $(hostname -i) [-u
cassuser
-pcasspass
] -e "select keyspace_name, replication from system_schema.keyspaces;"כאשר
$(hostname -i)
מוביל לכתובת ה-IP של צומת Cassandra. לחלופין, אפשר להחליף את$(hostname -i)
בכתובת ה-IP של הצומת.cassuser
: אם הפעלת אימות של Cassandra, צריך להעביר את שם המשתמש של Cassandra. אם לא מופעל אימות Cassandra, אפשר לדלג על השלב הזה.casspass
: אם הפעלת אימות של Cassandra, צריך להעביר את הסיסמה של Cassandra. אם לא מופעל אימות Cassandra, אפשר לדלג על השלב הזה.
הפלט אמור להיראות כמו בדוגמה הבאה, שבה כל שורה מייצגת מרחב מקשים אחד:
keyspace_name | replication kms | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'} system_distributed | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'} apprepo | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'}
אפשר לראות שעבור מרכז הנתונים 1, dc-1, גורם הרפליקציה שמוגדר כברירת מחדל למרחב המפתחות הוא 3 בהתקנה עם שלושה צמתים של Cassandra. במרחבי מפתחות מסוימים בתוך Cassandra (למשל system , system_schema וכו'), אסטרטגיית הרפליקציה וגורם הרפליקציה עשויים להיות שונים. זו התנהגות מכוונת של המערכת.
אם מוסיפים עוד צמתים של Cassandra לאשכול, גורם ברירת המחדל של הרפליקציה לא הושפעו.
מידע על רמת העקביות של Cassandra
רמת העקביות של Cassandra מוגדרת כמספר המינימלי של צומתי Cassandra שחייבים לאשר פעולת קריאה או כתיבה לפני שהפעולה תיחשב כמוצלחת. אפשר להקצות רמות עקביות שונות למרחבי מפתחות שונים ב-Edge.
כשמתחברים ל-Cassandra לצורך פעולות קריאה וכתיבה, מעבד הודעות וניהול הודעות
בדרך כלל, צמתים של שרתים משתמשים בערך Cassandra של LOCAL_QUORUM
כדי
לציין את רמת העקביות של מרחב מפתחות. אבל חלק ממרחבי המפתחות מוגדרים להשתמש
לרמת העקביות של 1.
כך מחשבים את הערך של LOCAL_QUORUM
במרכז נתונים:
LOCAL_QUORUM = (replication_factor/2) + 1
כפי שתואר קודם, גורם הרפליקציה שמוגדר כברירת מחדל בסביבת הייצור של Edge עם
שלושה צמתים של קסנדרה הם שלושה. לכן, ערך ברירת המחדל של LOCAL_QUORUM
=
(3/2) +1 = 2 (הערך מעוגל כלפי מטה למספר שלם).
כאשר LOCAL_QUORUM
= 2, לפחות שניים מתוך שלושת הצמתים של Cassandra בנתונים
צריך להגיב לפעולת קריאה/כתיבה כדי שהפעולה תתבצע בהצלחה. לצומת עם שלושה צמתים
לכן אשכול קסנדרה יכול לעמוד בתנאים להשבתת צומת אחד בכל מרכז נתונים.
כשמציינים את רמת העקביות בתור LOCAL_QUORUM
, דפדפן Edge מבטל את זמן האחזור
שנדרשות על ידי אימות פעולות במספר מרכזי נתונים. אם במרחב מפתחות נעשה שימוש ב-Cassandra
הערך של QUORUM
בתור רמת העקביות, פעולות קריאה/כתיבה צריכות להיות
מתבצע אימות בכל מרכזי הנתונים.
כדי לראות את רמת העקביות שבה נעשה שימוש בצמתים של מעבד ההודעות או של שרת הניהול:
- מתחברים לצומת של מעבד הודעות.
- שינוי לספרייה
/opt/apigee/edge-message-processor/conf
:cd /opt/apigee/edge-message-processor/conf
- כדי לשמור על עקביות של קריאה וכתיבה:
grep -ri "consistency.level" *
- מתחברים לצומת של שרת הניהול.
- שינוי לספרייה
/opt/apigee/edge-management-server/conf
:cd /opt/apigee/edge-management-server/conf
- חוזרים על שלב 3.
אם תוסיפו עוד צמתים של Cassandra לאשכול, רמת העקביות לא תושפע.