- عبر HTTP/HTTPS، باستخدام الترويسة
X-ClickHouse-Replica-Tag. - عبر البروتوكول الأصلي، باستخدام تجاوز مؤشر اسم الخادم (SNI) في TLS.
المتطلبات الأساسية
- تحتاج خدمتك إلى نسختين متماثلتين أو أكثر. في خدمة ذات نسخة متماثلة واحدة، لا توجد نسخة يمكن التثبيت عليها.
- خدمة من فئة Enterprise.
- مدعومة في خدمات ClickHouse Cloud القياسية وفي BYOC
تهيئة التوجيه المراعي للنسخ المتماثلة
يستطيع عملاء Enterprise تفعيل التوجيه المدرك للنسخ من صفحة إعدادات الخدمة في ClickHouse Cloud console. افتح خدمتك، وانتقل إلى Settings، ثم فعّل المفتاح الخاص بالواجهة التي تريدها:- مفتاح يفعّل التوجيه المستند إلى HTTP عبر الترويسة
X-ClickHouse-Replica-Tag. - ومفتاح منفصل يفعّل التوجيه عبر البروتوكول الأصلي بالاعتماد على تجاوز SNI.
التوجيه المستند إلى HTTP
لتثبيت عبء عمل على نسخة متماثلة، أرسل ترويسةX-ClickHouse-Replica-Tag عبر واجهة HTTPS. يستخدم الوكيل التجزئة المتسقة لقيمة الترويسة، لذا تُوجَّه الطلبات التي تحمل القيمة نفسها إلى النسخة المتماثلة ذاتها ما دام عدد النسخ المتماثلة لم يتغير. وتُجزَّأ القيمة المختلفة بصورة مستقلة، وقد تُوجَّه إلى النسخة المتماثلة نفسها أو إلى نسخة أخرى، لكن لا يمكنك اختيار أيّ نسخة متماثلة تُعيَّن لها قيمة معيّنة.
استخدم اسم مضيف الخدمة الحالي. لا تحتاج إلى أسماء مضيفين مثبتة خاصة أو إلى إجراء تغييرات على DNS. يمكن أن تكون قيمة الترويسة أي سلسلة تختارها، مثل اسم التطبيق أو معرّف المستخدم أو تسمية عبء العمل. وتستمر الطلبات التي لا تتضمن الترويسة في استخدام موازنة التحميل العادية.
عيّن ترويسة X-ClickHouse-Replica-Tag في كل طلب:
Protocol: clickhouse.HTTP ومرّر الترويسة عبر خيار الاتصال HttpHeaders.
توفّر
X-ClickHouse-Replica-Tag ارتباطًا بنسخة متماثلة محددة دون إنشاء جلسة HTTP في ClickHouse. ويمكن للطلبات المتزامنة إعادة استخدام الوسم نفسه دون ظهور الخطأ SESSION_IS_LOCKED.التوجيه عبر البروتوكول الأصلي
عبر البروتوكول الأصلي، مرّر قيمة التوجيه كاسم خادم TLS بالصيغة<routing-value>.sticky.<host>. واتصل باسم مضيف خدمتك المعتاد كالمعتاد. ويتلقى ClickHouse Client قيمة التوجيه عبر --tls-sni-override:
--host هو اسم مضيف الخدمة المعتاد، و--secure يفعّل TLS، و--tls-sni-override يحمل قيمة التوجيه. واستخدام TLS إلزامي. ولا حاجة إلى أي شهادة إضافية أو سجل DNS إضافي.
اتّساق القراءة بعد الكتابة
في خدمة متعددة النسخ، قد لا تظهر عملية كتابة جرت على إحدى النسخ في النسخ الأخرى إلى أن يكتمل النسخ المتماثل. أرسل عملية الكتابة مصحوبةً بقيمة توجيه، ثم أعد استخدام القيمة نفسها في عمليات القراءة اللاحقة. يوجّه الوسيط كلتيهما إلى النسخة ذاتها، فتقرأ ما كتبته حتى لو كانت النسخ الأخرى لا تزال متأخرة. يناسب هذا النمط أعباء العمل التي تكتب البيانات ثم تقرأها فورًا، مثل التطبيقات التفاعلية أو مهام ETL التي تتحقق من صحة عمليات الإدراج قبل المتابعة. كما يفيد بعد إجراء تغيير في المخطط لم يُنسخ بعد، إذ تُبقي إعادة استخدام قيمة التوجيه عمليات الإدراج على نسخة تحتوي المخطط الجديد بالفعل. عبر HTTP، أعد استخدام قيمة الترويسة:select_sequential_consistency على 1 في ClickHouse Cloud.
تحقّق من النسخة المتماثلة التي وصل إليها طلبك
شغّل أحد أمثلةSELECT hostName() مرة أخرى باستخدام قيمة التوجيه نفسها. ينبغي أن تحصل على اسم المضيف نفسه ما دام عدد النسخ المتماثلة لم يتغير. وقد تُعيَّن قيمة توجيه مختلفة إلى نسخة متماثلة مختلفة.
قيود التوجيه المراعي للنسخ المتماثلة
يتغير الثبات عند تغير عدد النسخ المتماثلة
يغيّر التوسع أو التقليص حلقة تجزئة التوجيه. وقد تُوجَّه الطلبات التي تشترك في قيمة التوجيه نفسها بعد ذلك إلى نسخة متماثلة مختلفة. إذا كنت تعتمد على الجداول المؤقتة أو الإعدادات على مستوى الجلسة، فكن مستعدًا لإعادة إنشائها بعد إعادة التوزيع. ويخبركSELECT hostName() دائمًا بالنسخة المتماثلة التي تعمل عليها.
التوجيه المراعي للنسخ المتماثلة ليس عزلًا لأعباء العمل
لا يحدد التوجيه اللاصق سوى أي نسخة متماثلة ستعالج الطلب. وقد تظل هذه النسخة المتماثلة تخدم حركة مرور أخرى. للحصول على موارد حوسبة مخصصة، استخدم فصل الحوسبة-الحوسبة.الشبكات الخاصة
يعمل كل من التوجيه المستند إلى HTTP والتوجيه عبر البروتوكول الأصلي مع الشبكات الخاصة على اسم مضيف الخدمة العادي لديك. ولا تحتاج إلى أي سجلات DNS إضافية.توجيه البروتوكول الأصلي يتطلب TLS
يتطلب توجيه البروتوكول الأصلي استخدام TLS، لذا مرّر--secure. أما الاتصال الأصلي غير المشفّر فيظل يستخدم موازنة التحميل العادية.
استكشاف الأخطاء وإصلاحها
لا تزال الاستعلامات تُوجَّه إلى نُسخ متماثلة مختلفة رغم استخدام قيمة التوجيه نفسها- تأكد من أن مفتاح التبديل الخاص بالواجهة التي تستخدمها مُفعَّل في صفحة إعدادات الخدمة. فطريقتا HTTP والأصلية تُفعَّلان كلٌّ على حدة.
- عبر HTTP، تأكد من أن كل طلب يتضمن الترويسة
X-ClickHouse-Replica-Tag، وأن كل طلب يستخدم القيمة نفسها تمامًا. - عبر البروتوكول الأصلي، تأكد من ضبط
--secureوأن--tls-sni-overrideبالصيغة<routing-value>.sticky.<host>. - انتظر قليلًا بعد التفعيل؛ فقد يستغرق سريان التغيير أقل من دقيقة.
- تحقق مما إذا كان عدد النسخ المتماثلة قد تغيّر مؤخرًا؛ إذ يُتوقع حدوث إعادة تعيين للربط بعد التحجيم. استخدم
SELECT hostName()لاكتشاف الربط الجديد.
- تأكد من أن
--hostهو اسم مضيف الخدمة المعتاد، وأن قيمة التوجيه تُمرَّر عبر--tls-sni-overrideوليس عبر--host.