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

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

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

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

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

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

  1. سجِّل الدخول إلى عقدة Cassandra.
  2. شغِّل الأمر التالي:
    /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 ثلاثة بثلاث عُقد كاساندرا.

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

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

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

يتم تعريف مستوى تناسق كاساندرا على أنه الحد الأدنى لعدد عُقد كاساندرا التي يجب الإقرار بعملية قراءة أو كتابة قبل اعتبار العملية ناجحة. يمكن تعيين مستويات تناسق مختلفة لمساحات رئيسية مختلفة في 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 "write.consistencylevel" *
  4. للحفاظ على اتساق القراءة:
    grep -ri "read.consistencylevel" *
  5. سجّل الدخول إلى عقدة خادم الإدارة.
  6. التغيير إلى الدليل /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  7. كرِّر الخطوتين 3 و4.

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