تُبسّط ميزة اكتشاف العنقود في ClickHouse تهيئة العنقود، إذ تتيح للعُقد اكتشاف نفسها وتسجيلها تلقائيًا من دون الحاجة إلى تعريفها صراحةً في ملفات التكوين. ويكون ذلك مفيدًا بشكل خاص عندما يصبح التعريف اليدوي لكل عقدة أمرًا مرهقًا.
تُعد اكتشاف العنقود ميزة تجريبية، وقد تتغير أو تُزال في الإصدارات القادمة.
لتمكينها، أدرِج الإعداد allow_experimental_cluster_discovery في ملف التكوين لديك:
التهيئة اليدوية التقليدية
تقليديًا، في ClickHouse، كان لا بد من تحديد كل جزء وكل نسخة متماثلة في العنقود يدويًا ضمن التهيئة:
مع اكتشاف العنقود، بدلًا من تعريف كل عقدة صراحةً، يكفي تحديد مسار في ZooKeeper. وستُكتشف تلقائيًا جميع العقد التي تُسجَّل تحت هذا المسار في ZooKeeper وتُضاف إلى العنقود.
إذا أردت تحديد رقم الجزء لعقدة معيّنة، يمكنك تضمين الوسم <shard> ضمن القسم <discovery>:
بالنسبة إلى node1 وnode2:
بالنسبة إلى node3 وnode4:
لن تسجّل العُقد المُعدّة في وضع المراقبة نفسها كنسخ متماثلة.
بل ستقتصر على مراقبة النسخ المتماثلة النشطة الأخرى في العنقود واكتشافها من دون المشاركة الفعلية.
لتمكين وضع المراقبة، أدرِج الوسم <observer/> ضمن قسم <discovery>:
قد تحتاج أحيانًا إلى إضافة المضيفين داخل العناقيد وإزالتهم، بل وإضافة العناقيد نفسها وإزالتها أيضًا. يمكنك استخدام العقدة <multicluster_root_path> مع مسار جذر لعدة عناقيد:
في هذه الحالة، عندما يسجّل مضيف آخر نفسه باستخدام المسار /clickhouse/discovery/some_new_cluster، سيُضاف عنقود باسم some_new_cluster.
يمكنك استخدام الآليتين معًا في الوقت نفسه، إذ يمكن للمضيف أن يسجّل نفسه في العنقود my_cluster وأن يكتشف أي عناقيد أخرى:
القيود:
- لا يمكنك استخدام كلٍّ من
<path> و<multicluster_root_path> ضمن الشجرة الفرعية نفسها في remote_servers.
- لا يمكن استخدام
<multicluster_root_path> إلا مع <observer/>.
- يُستخدم الجزء الأخير من المسار في Keeper كاسم للعنقود، بينما عند التسجيل يُؤخذ الاسم من وسم XML.
عند إضافة عُقد إلى مسار ZooKeeper المحدد أو إزالتها منه، تُكتشف أو تُستبعد تلقائيًا من العنقود من دون الحاجة إلى تغيير الإعدادات أو إعادة تشغيل الخادم.
ومع ذلك، تؤثر هذه التغييرات في إعدادات العنقود فقط، ولا تمس البيانات أو قواعد البيانات والجداول الحالية.
انظر إلى المثال التالي لعنقود يتكوّن من 3 عُقد:
بعد ذلك، نضيف عقدة جديدة إلى العنقود عبر تشغيل عقدة جديدة تتضمن نفس الإدخال في قسم remote_servers ضمن ملف التهيئة:
تشارك العقدة الرابعة في العنقود، لكن الجدول event_table لا يزال موجودًا فقط على العقد الثلاث الأولى:
إذا كنت بحاجة إلى تكرار الجداول على جميع العقد، فيمكنك استخدام محرك قاعدة البيانات Replicated بدلًا من ميزة اكتشاف العنقود. آخر تعديل في ٣ يوليو ٢٠٢٦