لمحة عن عامل نسخ "كاساندرا" ومستوى الاتساق

حول عامل النسخ المماثل لـ "كاساندرا"

تقوم "كاساندرا" بتخزين النسخ المتماثلة للبيانات على عُقد متعددة لضمان الموثوقية والتسامح مع الأخطاء. تحدد استراتيجية النسخ المتماثل لكل مساحة مفاتيح في Edge العُقد التي توجد بها النسخ المتماثلة .

يُشار إلى العدد الإجمالي النسخ المتماثلة لمسافة رئيسية عبر مجموعة كاساندرا باسم مجموعة كاساندرا عامل النسخ لـ keyspace. عامل النسخ المتماثل واحد يعني أن هناك واحدًا فقط نسخة من كل صف في المجموعة العنقودية كاساندرا. يعني عامل النسخ المتماثل اثنين أن هناك نوعين نسخ من كل صف، حيث تقع كل نسخة على عقدة مختلفة. جميع النسخ المتماثلة مهمة بنفس القدر؛ لا توجد نسخة مطابقة أساسية أو رئيسية.

في أي نظام إنتاج به ثلاثة أو أكثر من عقد Cassandra في كل مركز بيانات، عامل النسخ لمساحة مفاتيح Edge هو ثلاثة. وكقاعدة عامة، فإن عامل النسخ عدد عُقد كاساندرا في المجموعة العنقودية.

استخدم الإجراء التالي لعرض مخطط Cassandra، الذي يُظهر عامل النسخ المتماثل لكل مساحة رئيسية في Edge:

  1. سجِّل الدخول إلى عقدة Cassandra.
  2. شغِّل الأمر التالي:
    /opt/apigee/apigee-cassandra/bin/cqlsh $(hostname -i) [-u cassuser -p casspass] -e "select keyspace_name, replication from system_schema.keyspaces;"

    حيث يتم حل $(hostname -i) إلى عنوان IP لعقدة Cassandra. أو يمكنك استبدال $(hostname -i) بعنوان IP للعقدة.

    cassuser: في حال تفعيل مصادقة 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، يكون عامل النسخ الافتراضي لمفتاح المسافة بالكيلومتر (كمs) هو ثلاثة لعمليات تثبيت ذات ثلاث عُقد كاساندرا. بالنسبة لبعض المساحات الرئيسية الداخلية لـ Cassandra (مثل النظام وsystem_schema وما إلى ذلك)، قد تختلف استراتيجية النسخ المماثل وعامل النسخ. وهذا سلوك نظام مقصود.

إذا أضفت عُقد كاساندرا إضافية إلى المجموعة، فلن يكون عامل النسخ الافتراضي المتأثرة.

حول مستوى اتساق كاساندرا

يتم تعريف مستوى تناسق كاساندرا على أنه الحد الأدنى لعدد عُقد كاساندرا التي يجب الإقرار بعملية قراءة أو كتابة قبل اعتبار العملية ناجحة. يمكن تعيين مستويات تناسق مختلفة لمساحات رئيسية مختلفة في Edge.

عند الاتصال بـ "كاساندرا" لإجراء عمليات للقراءة والكتابة، يصبح معالج الرسائل وإدارتها تستخدم عُقد الخادم عادةً قيمة Cassandra من LOCAL_QUORUM من أجل لتحديد مستوى الاتساق لمفتاح المسافة. ومع ذلك، يُحدد بعض المسافات الرئيسية لاستخدام الاتساق في واحد.

فيما يلي حساب قيمة LOCAL_QUORUM لمركز البيانات:

LOCAL_QUORUM = (replication_factor/2) + 1

كما هو موضح أعلاه، فإن عامل النسخ الافتراضي لبيئة إنتاج Edge مع ثلاث عُقد كاساندرا هي ثلاثة. وبالتالي، تكون القيمة التلقائية LOCAL_QUORUM = (3/2) +1 = 2 (يتم تقريب القيمة إلى عدد صحيح).

عندما تكون LOCAL_QUORUM = 2، اثنان على الأقل من عقد Cassandra الثلاثة في البيانات إلى عملية قراءة/كتابة لكي تنجح العملية. للعقدة الثلاثة المجموعة العنقودية كاساندرا، وبالتالي يمكن للمجموعة العنقودية تحمل عقدة واحدة معطلة لكل مركز بيانات.

من خلال تحديد مستوى الاتساق على LOCAL_QUORUM، تتجنّب Edge وقت الاستجابة. عن طريق التحقق من صحة العمليات في العديد من مراكز البيانات. إذا استخدم مفتاح المسافة المفتاح Cassandra QUORUM كمستوى التناسق، ينبغي أن تكون عمليات القراءة/الكتابة والتحقق من صحتها عبر جميع مراكز البيانات.

لمعرفة مستوى الاتساق المستخدم في عُقد معالج الرسائل أو خادم الإدارة في Edge:

  1. سجِّل الدخول إلى عقدة معالج الرسائل.
  2. التغيير إلى الدليل /opt/apigee/edge-message-processor/conf:
    cd /opt/apigee/edge-message-processor/conf
  3. لتحقيق اتساق في القراءة والكتابة:
    grep -ri "consistency.level" *
  4. سجّل الدخول إلى عقدة خادم الإدارة.
  5. التغيير إلى الدليل /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  6. كرِّر الخطوة 3.

إذا أضفت عُقد Cassandra إضافية إلى المجموعة، فلن يتأثر مستوى الاتساق.