Skip to main content
يوجّه التوجيه المراعي للنسخ المتماثلة، المعروف أيضًا باسم الجلسات اللاصقة أو التوجيه اللاصق أو تقارب الجلسة، الطلبات ذات الصلة إلى النسخة المتماثلة نفسها من ClickHouse. استخدمه عندما تحتاج إلى أن تظل الجداول المؤقتة أو حالة الجلسة المسمّاة متاحة عبر الاستعلامات، أو عندما تريد أن تعيد الاستعلامات ذات الصلة استخدام الذاكرات المؤقتة المحلية للنسخة المتماثلة نفسها، أو عندما تحتاج إلى اتساق القراءة بعد الكتابة بين عملية كتابة وعمليات القراءة التي تليها. هذه الميزة تعمل وفق أفضل جهد ولا تضمن العزل. يربط الوكيل كل قيمة توجيه بنسخة متماثلة واحدة. ويظل هذا الربط ثابتًا ما دام عدد النسخ المتماثلة دون تغيير؛ لكن تغيير سعة الخدمة قد يربط القيمة بنسخة متماثلة مختلفة.
يتطلب واجهة HTTPيُطبَّق التوجيه المراعي للنسخ المتماثلة في طبقة الوكيل عبر واجهة HTTP/HTTPS. ينتقل ClickHouse Cloud بالتوجيه المراعي للنسخ المتماثلة من session_id إلى الترويسة X-ClickHouse-Replica-Tag. تصف علامات التبويب أدناه الطريقتين خلال مرحلة الطرح.التوجيه المراعي للنسخ المتماثلة غير متاح حاليًا عبر البروتوكول الأصلي (المنفذ الأصلي، مثل برنامج التشغيل clickhouse-go في وضعه الأصلي الافتراضي). يجب على عملاء البروتوكول الأصلي التبديل إلى HTTP وإرسال قيمة التوجيه مع كل طلب.

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

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

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

افتح تذكرة دعم واطلب تمكين التوجيه اللاصق للنسخ المتماثلة المستند إلى HTTP. ضمّن معرّف الخدمة وسبب حاجتك إليه (الجداول المؤقتة، أو حالة الجلسة، أو إعادة استخدام ذاكرة التخزين المؤقت، أو اتساق القراءة بعد الكتابة). قبل ترحيل خدمة موجودة، اطلب من الدعم تأكيد تمكين التوجيه المستند إلى الترويسة لها. واصل استخدام session_id حتى تتلقى التأكيد؛ لن يوفر X-ClickHouse-Replica-Tag توجيهًا لاصقًا حتى يصل النشر التدريجي إلى خدمتك. لا يلزم إجراء أي إعادة تشغيل.

التوجيه المستند إلى 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.

اتساق القراءة بعد الكتابة

في خدمة تضم عدة نسخ متماثلة، قد لا تظهر الكتابة على إحدى النسخ في النسخ الأخرى إلى أن تلحق بها عملية النسخ المتماثل. أرسل عملية الكتابة مع ترويسة X-ClickHouse-Replica-Tag، ثم أعد استخدام قيمة الترويسة نفسها في عمليات القراءة اللاحقة. يوجّه الوكيل العمليتين إلى النسخة المتماثلة نفسها، لذا يمكنك قراءة البيانات التي كتبتها حتى عندما تكون النسخ المتماثلة الأخرى متأخرة. يناسب هذا النمط أعباء العمل التي تكتب البيانات ثم تقرؤها فورًا، مثل التطبيقات التفاعلية أو مهام ETL التي تتحقق من عمليات الإدراج قبل المتابعة.ولضمانات أوسع عبر جميع النسخ المتماثلة، يمكنك أيضًا ضبط select_sequential_consistency على 1 في ClickHouse Cloud.

تحقّق من النسخة المتماثلة التي وصل إليها طلبك

شغّل مثال SELECT hostName() مرة أخرى باستخدام قيمة X-ClickHouse-Replica-Tag نفسها. ينبغي أن تحصل على اسم المضيف نفسه ما دام عدد النسخ المتماثلة لم يتغير. وقد تُعيَّن قيمة ترويسة مختلفة إلى نسخة متماثلة مختلفة.

التوجيه القديم المستند إلى النطاق الفرعي

لم يعد التوجيه المستند إلى النطاق الفرعي مُمكّنًا في الخدمات الجديدة. إذا كنت تستخدم بالفعل نطاقات فرعية مثبتة، فتواصل مع Support للترحيل إلى طريقة رأس HTTP.
سابقًا، كان تمكين التوجيه المراعي للنسخ المتماثلة يتيح استخدام نطاق فرعي عام (wildcard) فوق اسم مضيف الخدمة. بالنسبة إلى خدمة يكون اسم المضيف الخاص بها abcxyz123.us-west-2.aws.clickhouse.cloud، كان أي اسم مضيف يطابق *.sticky.abcxyz123.us-west-2.aws.clickhouse.cloud (مثل aaa.sticky.abcxyz123.us-west-2.aws.clickhouse.cloud) يُوجَّه بواسطة Envoy، باستخدام hash، إلى نسخة متماثلة ثابتة. أما اسم المضيف الأصلي فكان يستمر في استخدام موازنة التحميل LEAST_CONNECTION، وهي خوارزمية التوجيه الافتراضية.

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

يتغير الثبات عند تغير عدد النسخ المتماثلة

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

التوجيه المراعي للنسخ المتماثلة ليس عزلًا لأعباء العمل

لا يحدد التوجيه اللاصق سوى أي نسخة متماثلة ستعالج الطلب. وقد تظل هذه النسخة المتماثلة تخدم حركة مرور أخرى. للحصول على موارد حوسبة مخصصة، استخدم فصل الحوسبة-الحوسبة. يعمل التوجيه المستند إلى HTTP مع الشبكات الخاصة على اسم مضيف الخدمة العادي لديك. ولا تحتاج إلى أي سجلات DNS إضافية. أما طريقة النطاق الفرعي القديمة فلا تعمل: يجب عليك إضافة DNS لنمط اسم المضيف *.sticky.*، وقد يؤدي الإعداد غير الصحيح إلى عدم توازن الحمل بين النسخ المتماثلة.

يتطلب التوجيه المراعي للنسخ المتماثلة بروتوكول HTTP

يرتكز التوجيه اللاصق على ترويسة HTTP أو معلَمة استعلام، وفقاً لطريقة التوجيه المتاحة لخدمتك. لا يحمل البروتوكول الثنائي الأصلي أياً من القيمتين ليُجري وكيل HTTP hash عليها، لذا لا يتوفر التوجيه المراعي للنسخ المتماثلة عبر البروتوكول الأصلي. يجب على برامج العميل التي تستخدم البروتوكول الأصلي نقل عبء العمل المعني إلى واجهة HTTP لاستخدام هذه الميزة.

استكشاف الأخطاء وإصلاحها

لا تزال الاستعلامات تُوجَّه إلى نُسخ متماثلة مختلفة رغم استخدام قيمة التوجيه نفسها
  • تأكد من استخدام طريقة التوجيه المتاحة لخدمتك: الترويسة X-ClickHouse-Replica-Tag أو معلَمة استعلام URL القديمة session_id.
  • تأكد من أن كل طلب يستخدم قيمة التوجيه نفسها تمامًا.
  • انتظر قليلًا بعد التفعيل؛ فقد يستغرق سريان التغيير أقل من دقيقة.
  • تحقق مما إذا كان عدد النسخ المتماثلة قد تغيّر مؤخرًا؛ إذ يُتوقع حدوث إعادة تعيين للربط بعد التوسعة. استخدم SELECT hostName() لاكتشاف الربط الجديد.
آخر تعديل في ١٤ أغسطس ٢٠٢٦