عن المشروع

هذا المشروع هو مكتبة توعية متقدمة لمهندسي جافا العاملين في مجال الإنترنت، تستمد معظم محتوياتها من تشونغ هوا شي شان، وتغطي خمس مجالات أساسية: البنية عالية المعالجة المتزامنة، والأنظمة الموزعة، والبنية عالية التوافر، وبنية الخدمات الدقيقة، ومعالجة البيانات الضخمة. في مجال البنية عالية المعالجة المتزامنة، يتعمق المشروع في استكشاف وسائط الرسائل (مزايا وعيوب Kafka وActiveMQ وRabbitMQ وRocketMQ وتصميمات التوافر العالي والإيجاز وإرسال الموثوق)، ومحركات البحث (البنية الموزعة لـElasticsearch ومبادئ القراءة والكتابة وتحسين استعلامات البيانات الضخمة ونشر المجموعات الإنتاجية)، والتخزين المؤقت (النموذج الخيطي لـRedis وأنواع البيانات واستراتيجيات انتهاء الصلاحية والتكرار الرئيسي والثانوي ومجموعة المراقبين وآليات الإثبات وأنماط المجموعة ومشاكل التساقط والاختراق والكسر واتساق الكتابة المزدوجة)، وتقسيم قواعد البيانات والجداول (اختيار البرمجيات الوسيطة والتوسع والانكماش الديناميكي وتوليد المعرف العالمي)، والفصل بين القراءة والكتابة والتصميم العام للأنظمة عالية المعالجة المتزامنة. ويشمل قسم الأنظمة الموزعة مواضيع مثل تقسيم النظام، وآلية عمل Dubbo وبروتوكولات التعريب، وتوازن الحمل والتسامح مع الأعطال بالعناقيد، وفكرة SPI، وإدارة الخدمات والتخفيض، والإيجاز والترتيب في الواجهات، وتصميم أطر RPC، ونظرية CAP، والأقفال الموزعة (مقارنة Redis وZookeeper)، والمعاملات الموزعة، والجلسات الموزعة. أما قسم البنية عالية التوافر فيركز على Hystrix، حيث يقدم عزل خزانة المهام، وآليات المقابس، وتخزين الطلبات، وتخفيض Fallback، ومبدأ الدرع الواقي، وحد الواجهة وحماية مهلة الوقت، ويتناول أيضاً استراتيجيات تحديد المعدل والتصفية (الاختيار بين Sentinel وHystrix) والتخفيض. ويشمل قسم البنية الخدمية الدقيقة الانتقال من الهيكل المفرد إلى الخدمات الدقيقة، وإدارة البيانات بدافع الأحداث، واستراتيجيات النشر، والفرق بين Spring Cloud وDubbo، واكتشاف الخدمات بواسطة Eureka. يركز قسم معالجة البيانات الضخمة على التمارين الخوارزمية في السيناريوهات واسعة النطاق، مثل إيجاد عناوين URL المتشابهة، والكلمات عالية التردد، وعناوين IP الشائعة، والمتوسط، ومشكلة TopK وغيرها من النماذج الشائعة. يوفر المشروع أيضاً وثائق PDF خارجية (283 صفحة)، ويرتبط بمشاريع أخرى في مجتمع Doocs مثل leetcode وتحليل المصادر ومبادئ JVM.