Edge for Private Cloud 4.17.09
لمحة عن عامل تكرار Cassandra
تخزِّن Cassandra نُسخًا من البيانات على عدة عقد لضمان الموثوقية وإمكانية الاحتمال في حال حدوث خطأ. تحدِّد استراتيجية النسخ المتماثل لكل مساحة مفاتيح في Edge العُقد التي يتم وضع النسخ المتماثل فيها.
يُشار إلى إجمالي عدد النُسخ الاحتياطية لمساحة مفاتيح التشفير في مجموعة Cassandra باسم معامل النسخ لمساحة مفاتيح التشفير. يعني عامل التكرار الذي يساوي واحدًا أنّه تتوفّر نسخة واحدة فقط من كل صف في مجموعة Cassandra. يعني عامل التكرار اثنين أنّ هناك نسختين من كل صف، حيث تكون كل نسخة على عقدة مختلفة. جميع النسخ المتماثلة مهمة بنفس القدر، فلا توجد نسخة أساسية أو مكررة.
في نظام الإنتاج الذي يتضمّن ثلاث عقد أو أكثر من عقد 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 للnode.
لكل مساحة مفتاح، سترى الناتج في النموذج:
create keyspace kms with placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {dc-1 : 3} and durable_writes = true;
يمكنك ملاحظة أنّ عامل التكرار التلقائي لمساحة مفاتيح kms هو ثلاثة لعمليات التثبيت التي تتضمّن ثلاث عقد من Cassandra في مركز البيانات 1، dc-1.
في حال إضافة المزيد من عقد Cassandra إلى المجموعة، لن يتم التأثير في عامل التكرار التلقائي.
على سبيل المثال، إذا زادت عدد عقد Cassandra إلى ستة، ولكن تركت عامل النسخ على ثلاثة، لن تضمن أن تتضمّن جميع عقد Cassandra نسخة من جميع البيانات. إذا تعطّلت إحدى العقد، يعني عامل التكرار الأعلى احتمالية أكبر أن تكون البيانات المتوفّرة على العقدة متوفّرة على إحدى العقد المتبقية. يتمثل الجانب السلبي لاستخدام عامل تكرار أعلى في زيادة وقت الانتظار عند كتابة البيانات.
لمحة عن مستوى اتساق Cassandra
يتم تعريف مستوى اتساق Cassandra على أنّه الحد الأدنى لعدد عقد Cassandra التي يجب أن تُقرّ بعملية قراءة أو كتابة قبل اعتبار العملية ناجحة. يمكن تخصيص مستويات اتساق مختلفة لمساحات مفاتيح Edge مختلفة.
عند الاتصال بخدمة Cassandra لإجراء عمليات القراءة والكتابة، تستخدم عادةً وحدات إدارة "معالج الرسائل" وخادمات 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" أو "خادم الإدارة":
- سجِّل الدخول إلى عقدة معالج الرسائل.
- عليك التغيير إلى الدليل /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 إلى المجموعة، لن يتأثّر مستوى الاتساق.