لمحة عن عامل التشغيل المضاعَف وكاساندرا

Edge for Private Cloud ‏v4.18.01

لمحة عن عامل تكرار Cassandra

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

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

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

اتّبِع الإجراء التالي لعرض مخطّط 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;

يمكنك ملاحظة أنّ عامل التكرار التلقائي لمساحة مفاتيح kms في مركز البيانات 1، dc-1، هو ثلاثة لتركيب مع ثلاث عقد Cassandra.

في حال إضافة المزيد من عقد Cassandra إلى المجموعة، لن يتم التأثير في عامل التكرار التلقائي.

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

لمحة عن مستوى اتساق Cassandra

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

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

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

LOCAL_QUORUM = (replication_factor/2) + 1

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

عندما يكون LOCAL_QUORUM = 2، يجب أن تستجيب اثنتان على الأقل من عقد Cassandra الثلاث في مركز البيانات لعملية قراءة/كتابة لكي تنجح العملية. بالنسبة إلى مجموعة 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 إلى المجموعة، لن يتأثّر مستوى الاتساق.