نظرة عامة
إعداد البروتوكولات القابلة للتركيب
protocols في ملف تهيئة XML:
إعداد طبقات البروتوكول
protocols:
plain_http- اسم يمكن الرجوع إليه من طبقة أخرىtype- يشير إلى معالج البروتوكول الذي سيُنشأ لمعالجة البيانات. وتتوافر له معالجات البروتوكول المعرّفة مسبقًا التالية:tcp- معالج بروتوكول ClickHouse الأصليhttp- معالج بروتوكول HTTP لـ ClickHousetls- طبقة تشفير TLSproxy1- طبقة PROXYv1mysql- معالج بروتوكول التوافق مع MySQLpostgres- معالج بروتوكول التوافق مع PostgreSQLprometheus- معالج بروتوكول Prometheusinterserver- معالج الاتصال الداخلي بين خوادم ClickHouse
لم يُنفَّذ معالج بروتوكول
gRPC في Composable protocols<port> و<host> الاختياريين.
على سبيل المثال، لتكوين نقطة نهاية على طبقة HTTP التي أُضيفت سابقًا،
يمكننا تعديل التكوين كما يلي:
<host>، فسيُستخدم <listen_host> من إعدادات الجذر.
تهيئة تسلسلات الطبقات
<impl>، مع الإشارة إلى
وحدة أخرى. على سبيل المثال، لتهيئة طبقة TLS فوق وحدة plain_http الخاصة بنا،
يمكننا تعديل الإعدادات على النحو التالي:
إرفاق نقاط النهاية بالطبقات
تعريف نقاط نهاية إضافية
<type>. على سبيل المثال، يمكننا تعريف نقطة النهاية another_http لوحدة
plain_http كما يلي:
معالجات HTTP مخصّصة لكل نقطة نهاية
type=http في الإعداد
<http_handlers> نفسه. يمكنك تجاوز ذلك بإضافة وسم <handlers> يشير
إلى قسم إعدادات مختلف. يتيح هذا لكل منفذ HTTP أن يقدّم مجموعة مختلفة من
قواعد توجيه HTTP.
على سبيل المثال، لتشغيل واجهة برمجة تطبيقات HTTP بديلة على المنفذ 8124 مع معالجاتها الخاصة:
<http_handlers> القياسية،
بينما تستخدم الطلبات الواردة إلى المنفذ 8124 قواعد <http_handlers_alt>. وإذا حُذف <handlers>
فإن نقطة النهاية تعود إلى <http_handlers> الافتراضي.
يتبع قسم المعالِجات المخصّصة التنسيق نفسه المستخدم في
<http_handlers>.
ويُكتشف أي تغيير في قسم المعالِجات المخصّصة أثناء إعادة تحميل config، وتُعاد
تشغيل نقطة النهاية المقابلة تلقائيًا.
مستخدم الجلسة الافتراضي لكل نقطة نهاية
user، أو حزمة Hello من البروتوكول الأصلي ذات اسم مستخدم
فارغ)، يصادقه الخادم بصفته مستخدم الجلسة الافتراضي،
وهو إعداد الخادم default_session_user إعداد الخادم
الذي قيمته الافتراضية هي default.
يتجاوز الوسم <default_session_user> هذا الإعداد لنقطة نهاية واحدة. يتيح ذلك
لمنافذ الاستماع المختلفة خدمة مستخدمين مجهولين مختلفين:
readonly_user. ولا يتأثر العميل الذي يمرر اسم مستخدم صراحةً.
يُبحث عن الوسم بدءًا من وحدة نقطة نهاية وصولًا إلى الوحدات (impl)
المشار إليها، وتُعتمد القيمة الأقرب إلى نقطة نهاية. وينطبق ذلك على معالجات البروتوكولات
tcp وhttp وmysql وpostgres، وعلى معالجات prometheus التي
تُصادِق الطلبات (remote_write وremote_read وquery وapi_v1)؛ أما
نقاط نهاية عرض المقاييس (بما في ذلك نقاط نهاية Keeper المخصصة للمقاييس فقط) فتُخدَم
دون مصادقة وتتجاهل هذا الإعداد. وتُصادِق المعالجات ذات المستخدم الثابت (مفتاح user
داخل handler في قاعدة http_handlers، أو مفتاح user داخل handler
في قاعدة prometheus.handlers) باستخدام مستخدمها المُهيأ، وتتجاهل هذا الإعداد أيضًا - وعلى نحو
خاص، لا يؤدي ترك default_session_user فارغًا إلى رفض هذه المعالجات. ولا يمكن استخدامه مع بروتوكول
interserver: إذ تُصادَق اتصالات الاتصال الداخلي بين خوادم ClickHouse بواسطة
secret الخاص بـ cluster والمستخدم الأولي، ولا تستخدم أبدًا مستخدم الجلسة الافتراضي.
تحديد معلمات إضافية للطبقة
privateKeyFile) وملفات الشهادة (certificateFile)
كما يلي: