Apache ShardingSphere هو نظام بيئي يتكون من مجموعة من حلول البرمجيات الوسيطة لقواعد البيانات الموزعة مفتوحة المصدر، ويتكون من JDBC وProxy وSidecar (قيد التخطيط)، وثلاثة منتجات مستقلة عن بعضها البعض ولكن يمكن نشرها واستخدامها معًا. توفر جميعها مشاركة موحدة للبيانات، والمعاملات الموزعة، ووظائف إدارة قواعد البيانات، ويمكن تطبيقها على سيناريوهات التطبيقات المتنوعة مثل تماثل Java، واللغات غير المتجانسة، والسحابة الأصلية، وما إلى ذلك.
يتم وضع Apache ShardingSphere كبرنامج وسيط لقاعدة البيانات العلائقية، بهدف الاستخدام الكامل والمعقول لقدرات الحوسبة والتخزين لقواعد البيانات العلائقية في السيناريوهات الموزعة، بدلاً من تنفيذ قاعدة بيانات علائقية جديدة. إنه يجسد جوهر الأشياء من خلال التركيز على ما لا يتغير. لا تزال قواعد البيانات العلائقية تشغل سوقًا ضخمًا اليوم، وهي حجر الزاوية في الأعمال الأساسية لكل شركة، وسيكون من الصعب تغييرها في المستقبل. وفي هذه المرحلة، نركز بشكل أكبر على الزيادات القائمة على الأساس الأصلي بدلاً من التركيز على التخريب.
بدأ Apache ShardingSphere 5.x في التركيز على البنية القابلة للتوصيل، ويمكن توسيع المكونات الوظيفية للمشروع بمرونة بطريقة قابلة للتوصيل. حاليًا، تم دمج وظائف مثل تقسيم البيانات، والفصل بين القراءة والكتابة، ونسخ البيانات المتعددة، وتشفير البيانات، واختبار ضغط قاعدة بيانات الظل، بالإضافة إلى دعم SQL والبروتوكولات مثل MySQL، وPostgreSQL، وSQLServer، وOracle، في المشروع من خلال المكونات الإضافية. يمكن للمطورين تخصيص نظامهم الفريد تمامًا مثل استخدام الكتل البرمجية الإنشائية. يوفر Apache ShardingSphere حاليًا العشرات من واجهات برمجة التطبيقات (SPIs) كنقاط امتداد للنظام، وما زال يتم إضافة المزيد منها.
شاردينج سفير-JDBC
تم وضعه كإطار Java خفيف الوزن، وهو يوفر خدمات إضافية في طبقة JDBC الخاصة بـ Java. يستخدم العميل للاتصال مباشرة بقاعدة البيانات ويقدم الخدمات في شكل حزم jar دون نشر وتبعيات إضافية ويمكن فهمه على أنه نسخة محسنة من برنامج تشغيل JDBC ومتوافق تمامًا مع JDBC وأطر عمل ORM المختلفة.
ينطبق على أي إطار عمل ORM يستند إلى JDBC، مثل: JPA أو Hibernate أو Mybatis أو Spring JDBC Template أو استخدم JDBC مباشرة.
يدعم أي تجمع اتصال بقاعدة بيانات طرف ثالث، مثل: DBCP، C3P0، BoneCP، Druid، HikariCP، إلخ.
يدعم أي قاعدة بيانات تطبق مواصفات JDBC حاليًا، وهو يدعم MySQL وOracle وSQLServer وPostgreSQL وأي قاعدة بيانات تتبع معيار SQL92.
ShardingSphere-Proxy
تم وضعه كوكيل قاعدة بيانات شفاف، فهو يوفر خادمًا يقوم بتغليف البروتوكول الثنائي لقاعدة البيانات لدعم اللغات غير المتجانسة. حاليًا، يتم توفير MySQL وPostgreSQL ويمكنهما استخدام أي عميل وصول متوافق مع بروتوكول MySQL/PostgreSQL (مثل MySQL Command Client وMySQL Workbench وNavicat وما إلى ذلك) لتشغيل البيانات، مما يجعلها أكثر ملاءمة لمسؤولي قواعد البيانات.
إنه شفاف تمامًا للتطبيق ويمكن استخدامه مباشرة كخادم MySQL/PostgreSQL.
ينطبق على أي عميل متوافق مع بروتوكول MySQL/PostgreSQL.
ShardingSphere-Sidecar (TODO)
تم وضعه كوكيل قاعدة بيانات سحابية أصلية لـ Kubernetes، فهو يوفر وصولاً كاملاً إلى قاعدة البيانات في شكل Sidecar. يوفر الحل بدون مركز وعدم التدخل طبقة مشاركة تتفاعل مع قاعدة البيانات، وهي شبكة قاعدة البيانات، والمعروفة أيضًا باسم شبكة قاعدة البيانات.
ينصب تركيز Database Mesh على كيفية ربط تطبيقات الوصول إلى البيانات الموزعة وقواعد البيانات بشكل عضوي، وهو يركز بشكل أكبر على التفاعل وفرز التفاعلات بين التطبيقات الفوضوية وقواعد البيانات بشكل فعال. باستخدام شبكة قاعدة البيانات، ستشكل التطبيقات وقواعد البيانات التي تصل إلى قاعدة البيانات في النهاية نظامًا شبكيًا ضخمًا، وتحتاج التطبيقات وقواعد البيانات فقط إلى التسجيل في نظام الشبكة، وكلها كائنات تتم إدارتها بواسطة الطبقة المتداخلة.
العمارة الهجينة
يعتمد ShardingSphere-JDBC بنية لا مركزية ومناسبة لتطبيقات OLTP خفيفة الوزن وعالية الأداء التي تم تطويرها في Java؛ ويوفر ShardingSphere-Proxy إدخالًا ثابتًا ودعمًا للغة غير المتجانسة وهو مناسب لتطبيقات OLAP وإدارة مشهد قواعد البيانات المقسمة وتشغيلها.
Apache ShardingSphere هو نظام بيئي يتكون من محطات وصول متعددة. من خلال مزج ShardingSphere-JDBC وShardingSphere-Proxy، واستخدام نفس مركز التسجيل لتكوين استراتيجيات التجزئة بشكل موحد، يمكن إنشاء أنظمة التطبيقات المناسبة لمختلف السيناريوهات بمرونة، مما يسمح للمهندسين المعماريين بتعديل أفضل نظام لبنية الأعمال الحالية بحرية أكبر.
1. تجزئة البيانات
المكتبة الفرعية والجدول الفرعي
القراءة والكتابة الانفصال
تخصيص استراتيجية المشاركة
مفتاح أساسي موزع غير مركزي
2. المعاملات الموزعة
واجهة المعاملات الموحدة
XA معاملات متسقة بقوة
شؤون مرنة
3. إدارة قواعد البيانات
الحوكمة الموزعة
تحجيم مرن
إمكانية الملاحظة (التتبع الموزع والمقاييس)
تشفير البيانات وفك تشفيرها
اختبار ضغط مقياس الظل