Skip to main content
يوجّه التوجيه المراعي للنسخ المتماثلة، المعروف أيضًا باسم الجلسات المثبتة أو التوجيه المثبت أو تقارب الجلسة، الطلبات ذات الصلة إلى النسخة المتماثلة نفسها من ClickHouse. استخدمه عندما تحتاج إلى أن تظل الجداول المؤقتة أو حالة الجلسة المسمّاة متاحة عبر الاستعلامات، أو عندما تريد أن تعيد الاستعلامات ذات الصلة استخدام ذاكرات التخزين المؤقت المحلية للنسخة المتماثلة نفسها، أو عندما تحتاج إلى اتساق القراءة بعد الكتابة بين عملية كتابة وعمليات القراءة التي تليها. هذه الميزة تعمل وفق أفضل جهد ولا تضمن العزل. يربط الوكيل كل قيمة توجيه بنسخة متماثلة واحدة. ويظل هذا الربط ثابتًا ما دام عدد النسخ المتماثلة دون تغيير؛ لكن تحجيم الخدمة قد يربط القيمة بنسخة متماثلة مختلفة. يتوفر التوجيه المراعي للنسخ المتماثلة عبر كلتا الواجهتين: ويجري تفعيل كل منهما على حدة، ويستخدمان التجزئة المتسقة نفسها خلف الوكيل.

المتطلبات الأساسية

  • تحتاج خدمتك إلى نسختين متماثلتين أو أكثر. في خدمة ذات نسخة متماثلة واحدة، لا توجد نسخة يمكن التثبيت عليها.
  • خدمة من فئة Enterprise.
  • مدعومة في خدمات ClickHouse Cloud القياسية وفي BYOC

تهيئة التوجيه المراعي للنسخ المتماثلة

يستطيع عملاء Enterprise تفعيل التوجيه المدرك للنسخ من صفحة إعدادات الخدمة في ClickHouse Cloud console. افتح خدمتك، وانتقل إلى Settings، ثم فعّل المفتاح الخاص بالواجهة التي تريدها:
  • مفتاح يفعّل التوجيه المستند إلى HTTP عبر الترويسة X-ClickHouse-Replica-Tag.
  • ومفتاح منفصل يفعّل التوجيه عبر البروتوكول الأصلي بالاعتماد على تجاوز SNI.
يمكنك تفعيل أحدهما أو كليهما. لا حاجة إلى إعادة التشغيل، وقد يسري التغيير خلال أقل من دقيقة. يجري طرح هذه المفاتيح تدريجياً على خطط فئة Enterprise. وإذا لم تظهر في خدمتك بعد، افتح تذكرة لدى الدعم مع ذكر معرّف الخدمة لديك لتفعيل الميزة في وقت أبكر.

التوجيه المستند إلى HTTP

لتثبيت عبء عمل على نسخة متماثلة، أرسل ترويسة X-ClickHouse-Replica-Tag عبر واجهة HTTPS. يستخدم الوكيل التجزئة المتسقة لقيمة الترويسة، لذا تُوجَّه الطلبات التي تحمل القيمة نفسها إلى النسخة المتماثلة ذاتها ما دام عدد النسخ المتماثلة لم يتغير. وتُجزَّأ القيمة المختلفة بصورة مستقلة، وقد تُوجَّه إلى النسخة المتماثلة نفسها أو إلى نسخة أخرى، لكن لا يمكنك اختيار أيّ نسخة متماثلة تُعيَّن لها قيمة معيّنة. استخدم اسم مضيف الخدمة الحالي. لا تحتاج إلى أسماء مضيفين مثبتة خاصة أو إلى إجراء تغييرات على DNS. يمكن أن تكون قيمة الترويسة أي سلسلة تختارها، مثل اسم التطبيق أو معرّف المستخدم أو تسمية عبء العمل. وتستمر الطلبات التي لا تتضمن الترويسة في استخدام موازنة التحميل العادية. عيّن ترويسة X-ClickHouse-Replica-Tag في كل طلب:
بالنسبة إلى clickhouse-go (v2)، اضبط 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، أعد استخدام قيمة الترويسة:
عبر البروتوكول الأصلي (native protocol)، أعد استخدام تجاوز SNI:
للحصول على ضمانات أوسع تشمل جميع الـ replicas، يمكنك أيضًا ضبط 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.
آخر تعديل في ٢٦ سبتمبر ٢٠٢٦