ليس وكيلا بسيطا
عندما نتحدث عن MaxScale، فإن رد الفعل هو مقارنته بـ HAProxy أو موازن التحميل الكلاسيكي. وهذا خطأ جوهري. MaxScale ليس وكيلاً من المستوى 4 (TCP). إنه وكيل من المستوى 7 يفهم بروتوكول SQL. فهو يوزع الطلبات ويحلل نوعها ويتخذ قرارات توجيه ذكية.
الفرق مشابه لذلك بين ساعي البريد الذي يسلم البريد حسب العنوان (L4) والمساعد الذي يقرأ رسائل البريد الإلكتروني الخاصة بك، ويفرزها حسب الأولوية، ويصفي البريد العشوائي، ويظهر لك فقط ما هو ذي صلة (L7). MaxScale يقرأ SQL.
المصادقة: ما وراء كلمة المرور
يدعم MaxScale مجموعة كاملة من آليات المصادقة:
- MariaDBAuth: مصادقة أصلية MariaDB / MySQL مع ذاكرة تخزين مؤقت محلية لبيانات الاعتماد
- PAM: التكامل مع أدلة الشركة (LDAP، Active Directory) عبر وحدات المصادقة القابلة للتوصيل
- GSSAPI/Kerberos: مصادقة الدخول الموحّد (SSO) لبيئات Windows / Active Directory
- Ed25519: مصادقة المفتاح العام لـ MariaDB، أكثر أمانًا من تجزئة SHA الكلاسيكية
تتم إدارة المصادقة على مستوى المستمع. لذلك يمكن أن يكون لدينا طرق مصادقة مختلفة على منافذ مختلفة: PAM للتطبيقات الداخلية، وEd25519 للاتصالات الإدارية، وMariaDBAuth للتوافق القديم.
البروتوكولات: ليس فقط SQL
MaxScale متعدد اللغات. وهو يدعم العديد من بروتوكولات الإدخال والإخراج:
MariaDBClient / MariaDBackend
البروتوكول MariaDB / MySQL الأصلي. هذه هي حالة الاستخدام الرئيسية: تتصل التطبيقات بـ MaxScale مثل خادم قاعدة البيانات القياسي.
سي دي سي / أفرو
يسمح لك بروتوكول Change Data Capture ببث تعديلات binlog بتنسيق AVRO. إنها الأداة المثالية لبناء خطوط أنابيب البيانات في الوقت الفعلي، أو تغذية مستودعات البيانات، أو مزامنة الأنظمة الخارجية.
NoSQL / MongoDB
يمكن لـ MaxScale الكشف عن واجهة متوافقة مع MongoDB. يمكن للتطبيقات التي تتحدث بروتوكول MongoDB التفاعل مع قاعدة بيانات MariaDB عبر MaxScale. هذه ميزة متخصصة ولكنها قوية للهجرات.
PostgreSQL (تجريبي)
دعم بروتوكول PostgreSQL كمدخل قيد التطوير. الهدف هو السماح لتطبيقات PostgreSQL بالاتصال بالواجهات الخلفية MariaDB.
الشاشات: ذكاء الطوبولوجيا
الشاشات هي عيون MaxScale. يقومون بانتظام باستقصاء خوادم الواجهة الخلفية لاكتشاف طوبولوجيا المجموعة وصحتها تلقائيًا.
ماريادبمون
جهاز العرض الأساسي لطبولوجيا النسخ المتماثل MariaDB / MySQL. يكتشف السيد والعبيد والمرحلات وحالة النسخ المتماثل. إنه يدير تجاوز الفشل التلقائي: إذا سقط السيد، تتم ترقية العبد، ويتم إعادة تكوين العبيد الآخرين للنسخ من السيد الجديد.
جاليرمون
الشاشة مخصصة لمجموعات Galera. يكتشف حالة المجموعة (أساسية، غير أساسية، غير متصلة)، وعدد العقد، وحالة UUID، ويدير التوجيه وفقًا لذلك.
أجهزة التوجيه: معلومات التوجيه
أجهزة التوجيه هي العقل المدبر لـ MaxScale. يقررون مكان إرسال كل طلب بناءً على نوعه والهيكل المكتشف.
قراءة وكتابة سبليت
جهاز التوجيه الأكثر استخداما. يتم إرسال طلبات الكتابة (INSERT، UPDATE، DELETE، CREATE، وما إلى ذلك) إلى السيد. يتم توزيع طلبات القراءة (SELECT) على العبيد. يتم إرسال المعاملات كاملة إلى السيد.### قراءةكونروت
جهاز توجيه أبسط يقوم بتوزيع الاتصالات (وليس الطلبات) عبر الخوادم المتاحة. مفيد للقراءات المكثفة التي لا تتطلب فصل القراءة/الكتابة على مستوى الاستعلام.
مخطط التوجيه
توجيه الطلبات إلى الخادم الذي يستضيف المخطط المطلوب. مثالية لتقسيم قاعدة البيانات: client_europe على الخادم A، client_asia على الخادم B.
بينلوغروتر
يحول MaxScale إلى مرحل النسخ المتماثل. يتصرف MaxScale كعبد للسيد، ويتصل العبيد الحقيقيون بـ MaxScale بدلاً من السيد. وهذا يقلل من الحمل على الرئيسي ويسمح بتوزيع binlog بشكل مركزي.
كافكاروتر (CDC)
يرسل أحداث binlog إلى Apache Kafka. يتم نشر كل تعديل على قاعدة البيانات كرسالة كافكا، مما يسمح للمستهلكين بالرد في الوقت الفعلي.
المرشحات: أكثر من 15 وحدة
تقوم المرشحات باعتراض وتحويل تدفق SQL بين العميل والخادم. MaxScale يقدم أكثر من 15:
- qlafilter: تسجيل الاستعلام الكامل (التدقيق)
- regexfilter: إعادة كتابة الاستعلامات باستخدام التعبيرات العادية
- ذاكرة التخزين المؤقت: ذاكرة التخزين المؤقت للاستعلام مع إبطال تلقائي
- throttlefilter: تحديد معدل الطلبات لكل مستخدم
- الإخفاء: إخفاء ديناميكي للبيانات الحساسة (رسائل البريد الإلكتروني وأرقام البطاقات)
- topfilter: مجموعة من الطلبات الأبطأ
- commentfilter: حقن تعليقات SQL للتتبع
- المحملة: تكرار التدفق إلى الواجهة الخلفية الثانية (اختبار الظل)
- namedserverfilter: التوجيه إلى خادم محدد بناءً على القواعد
- hintfilter: تفسير تلميحات SQL لفرض التوجيه
- luafilter: تشغيل البرامج النصية Lua للمنطق المخصص
- binlogfilter: تصفية أحداث binlog حسب المخطط أو الجدول
النشر: Docker وKubernetes جاهزان
MaxScale متاح في الصورة الرسمية Docker:
docker run -d --name maxscale \
-v /path/to/maxscale.cnf:/etc/maxscale.cnf \
-p 4006:4006 -p 8989:8989 \
mariadb/maxscale:latest
بالنسبة إلى Kubernetes، يتم نشر MaxScale كمجموعة حالة أو عملية نشر وفقًا لحالة الاستخدام. يسهل API REST التكامل مع فحوصات السلامة وتحقيقات الاستعداد.
قيمة الأعمال
بالإضافة إلى الوظائف الفنية، يوفر MaxScale قيمة تجارية ملموسة:
- توفر عالي: تجاوز الفشل تلقائيًا في بضع ثوانٍ، وهو شفاف للتطبيق
- قابلية التوسع في القراءة: إضافة العبيد دون تعديل كود التطبيق
- الأمان: SQL التصفية، وإخفاء البيانات، والمصادقة المركزية
- قابلية الملاحظة: التسجيل والمقاييس API REST للمراقبة
- سهولة الترحيل: دعم متعدد البروتوكولات للتحولات التكنولوجية
MaxScale ليس وكيلًا عكسيًا بسيطًا. إنها طبقة بنية تحتية ذكية يتم وضعها بين التطبيقات وقواعد MariaDB / MySQL، مما يوفر المرونة والأمان والمرونة دون تعديل سطر واحد من كود التطبيق.
تم نشر هذه المقالة في الأصل على متوسط.
تعليقات (0)
لا توجد تعليقات حتى الآن.
اترك تعليقا