المتطلبات الأساسية
- تحتاج خدمتك إلى نسختين متماثلتين أو أكثر. في خدمة ذات نسخة متماثلة واحدة، لا توجد نسخة يمكن التثبيت عليها.
- تكون متاحة على Enterprise افتراضيًا عندما تصبح الميزة في مرحلة GA.
- مدعومة في خدمات ClickHouse Cloud القياسية. أما BYOC فغير مدعوم بعد.
تهيئة التوجيه المراعي للنسخ المتماثلة
session_id حتى تتلقى التأكيد؛ لن يوفر X-ClickHouse-Replica-Tag توجيهًا لاصقًا حتى يصل النشر التدريجي إلى خدمتك. لا يلزم إجراء أي إعادة تشغيل.
التوجيه المستند إلى HTTP
- X-ClickHouse-Replica-Tag (المفضَّل)
- session_id (القديم)
لتثبيت عبء عمل على نسخة متماثلة، أرسل ترويسة بالنسبة إلى clickhouse-go (v2)، اضبط
X-ClickHouse-Replica-Tag عبر واجهة HTTPS. يستخدم الوكيل التجزئة المتسقة لقيمة الترويسة، لذا تُوجَّه الطلبات التي تحمل القيمة نفسها إلى النسخة المتماثلة ذاتها ما دام عدد النسخ المتماثلة لم يتغير. وتُجزَّأ القيمة المختلفة بصورة مستقلة، وقد تُوجَّه إلى النسخة المتماثلة نفسها أو إلى نسخة أخرى، لكن لا يمكنك اختيار أيّ نسخة متماثلة تُعيَّن لها قيمة معيّنة.استخدم اسم مضيف الخدمة الحالي. لا تحتاج إلى أسماء مضيفين مثبتة خاصة أو إلى إجراء تغييرات على DNS. يمكن أن تكون قيمة الترويسة أي سلسلة تختارها، مثل اسم التطبيق أو معرّف المستخدم أو تسمية عبء العمل. وتستمر الطلبات التي لا تتضمن الترويسة في استخدام موازنة التحميل العادية.عيّن ترويسة X-ClickHouse-Replica-Tag في كل طلب: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 نفسها. ينبغي أن تحصل على اسم المضيف نفسه ما دام عدد النسخ المتماثلة لم يتغير. وقد تُعيَّن قيمة ترويسة مختلفة إلى نسخة متماثلة مختلفة.التوجيه القديم المستند إلى النطاق الفرعي
كيفية عمل التوجيه القديم المستند إلى النطاق الفرعي
كيفية عمل التوجيه القديم المستند إلى النطاق الفرعي
سابقًا، كان تمكين التوجيه المراعي للنسخ المتماثلة يتيح استخدام نطاق فرعي عام (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، وهي خوارزمية التوجيه الافتراضية.قيود التوجيه المراعي للنسخ المتماثلة
يتغير الثبات عند تغير عدد النسخ المتماثلة
التوجيه المراعي للنسخ المتماثلة ليس عزلًا لأعباء العمل
Private Link وطريقة النطاق الفرعي القديمة
*.sticky.*، وقد يؤدي الإعداد غير الصحيح إلى عدم توازن الحمل بين النسخ المتماثلة.
يتطلب التوجيه المراعي للنسخ المتماثلة بروتوكول HTTP
hash عليها، لذا لا يتوفر التوجيه المراعي للنسخ المتماثلة عبر البروتوكول الأصلي. يجب على برامج العميل التي تستخدم البروتوكول الأصلي نقل عبء العمل المعني إلى واجهة HTTP لاستخدام هذه الميزة.
استكشاف الأخطاء وإصلاحها
- تأكد من استخدام طريقة التوجيه المتاحة لخدمتك: الترويسة
X-ClickHouse-Replica-Tagأو معلَمة استعلام URL القديمةsession_id. - تأكد من أن كل طلب يستخدم قيمة التوجيه نفسها تمامًا.
- انتظر قليلًا بعد التفعيل؛ فقد يستغرق سريان التغيير أقل من دقيقة.
- تحقق مما إذا كان عدد النسخ المتماثلة قد تغيّر مؤخرًا؛ إذ يُتوقع حدوث إعادة تعيين للربط بعد التوسعة. استخدم
SELECT hostName()لاكتشاف الربط الجديد.