مهندس جافا للإنترنت المعرفة المتقدمة ومحو الأمية الكاملة
معظم محتوى هذا المشروع يأتي من شركة Hushan الصينية، وحقوق الطبع والنشر مملوكة للمؤلف. ويغطي المحتوى المعرفة في مجالات التزامن العالي، والتوزيع، والتوافر العالي، والخدمات الصغيرة، ومعالجة البيانات الضخمة. لقد قمنا بتنظيم هذا الجزء من المعرفة بشكل منهجي لتسهيل تعلم القراء والمرجعية.
نحن نعمل أيضًا بجد لتحديث مشروع الخوارزمية! إذا كنت تستعد لإجراء خوارزميات مقابلة مكتوبة، أو ترغب في تحسين مهاراتك في البرمجة، فنحن نرحب بك في Star ومتابعة doocs/leetcode
قبل دراسة هذا المشروع، دعونا نلقي نظرة على ما قاله القائمون على المقابلات الفنية في منتدى المناقشات. يرحب هذا المشروع بجميع الأصدقاء المطورين لمشاركة بعض أفكارهم وتجاربهم العملية في منتدى المناقشات. قد ترغب أيضًا في متابعة doocs/advanced-java مع Star لتتبع آخر التطورات في المشروع.
بنية عالية التزامن
قائمة انتظار الرسائل
- لماذا استخدام قائمة انتظار الرسائل؟ ما هي مزايا وعيوب قوائم انتظار الرسائل؟ ما هي مزايا وعيوب Kafka وActiveMQ وRabbitMQ وRocketMQ؟
- كيف يمكن التأكد من التوفر العالي لقائمة انتظار الرسائل؟
- كيف تتأكد من عدم استهلاك الرسائل بشكل متكرر؟ (كيفية التأكد من عدم فعالية استهلاك الرسالة)
- كيف نضمن النقل الموثوق للرسائل؟ (كيفية التعامل مع مشكلة فقدان الرسائل)
- كيفية التأكد من ترتيب الرسائل؟
- كيفية حل مشاكل تأخير قائمة انتظار الرسائل وانتهاء الصلاحية؟ ماذا تفعل عندما تكون قائمة انتظار الرسائل ممتلئة؟ هناك ملايين الرسائل المتراكمة لعدة ساعات كيف يمكننا حلها؟
- إذا طُلب منك كتابة قائمة انتظار الرسائل، كيف ستصمم البنية؟ أخبرني بأفكارك.
محرك بحث
- هل يمكنك شرح مبدأ البنية الموزعة لـ ES (كيف تحقق ES التوزيع)؟
- كيف تعمل ES على كتابة البيانات؟ كيف تعمل بيانات الاستعلام ES؟ هل يمكنك تقديم لوسين الأساسي؟ هل تعرف عن المؤشر المقلوب؟
- كيف يمكن لـ ES تحسين كفاءة الاستعلام عندما تكون كمية البيانات كبيرة (مليارات المستويات)؟
- ما هي بنية النشر لمجموعة إنتاج ES؟ ما مقدار البيانات التي يحتوي عليها كل فهرس تقريبًا؟ كم عدد القطع تقريبًا الموجودة في كل فهرس؟
مخبأ
- كيف يتم استخدام التخزين المؤقت في المشروع؟ ما هي عواقب التخزين المؤقت إذا تم استخدامه بشكل غير صحيح؟
- ما هو الفرق بين ريديس و Memcached؟ ما هو نموذج خيوط Redis؟ لماذا يعتبر Redis ذو الخيوط الواحدة أكثر كفاءة من Memcached متعدد الخيوط؟
- ما أنواع البيانات التي يمتلكها Redis؟ في أي السيناريوهات يكون الاستخدام أكثر ملاءمة؟
- ما هي استراتيجيات انتهاء الصلاحية لـ Redis؟ هل يمكنك كتابة رمز LRU باليد؟
- كيف يمكن ضمان التزامن العالي والتوافر العالي لـ Redis؟ هل يمكنك تقديم مبدأ النسخ المتماثل للسيد والعبد في Redis؟ هل يمكنك تقديم مبدأ الحارس لـ Redis؟
- ما هي بنية السيد والعبد في Redis؟
- كيف تحقق مجموعة Redis Sentinel Cluster التوفر العالي؟
- ما هي أساليب استمرار Redis؟ ما هي مزايا وعيوب آليات الثبات المختلفة؟ كيف يتم تنفيذ آلية الثبات الأساسية؟
- هل يمكنك شرح كيفية عمل وضع مجموعة Redis؟ في وضع المجموعة، كيف تتم معالجة مفتاح Redis؟ ما هي خوارزميات العنونة الموزعة؟ هل تفهم خوارزمية التجزئة المتسقة؟ كيفية إضافة عقدة وحذفها ديناميكيًا؟
- هل تفهم ما هو انهيار Redis والاختراق والانهيار؟ ماذا يحدث بعد تعطل Redis؟ فكيف يجب أن يتعامل النظام مع هذا الوضع؟ كيفية التعامل مع اختراق Redis؟
- كيفية ضمان اتساق الكتابة المزدوجة بين ذاكرة التخزين المؤقت وقاعدة البيانات؟
- ما هي مشكلة التنافس على التزامن في Redis؟ كيفية حل هذه المشكلة؟ هل تعرف حل CAS لمعاملات Redis؟
- كيف يتم نشر Redis في بيئة الإنتاج؟
- هل سبق لك أن فهمت عملية إعادة صياغة Redis؟
قاعدة البيانات الفرعية والجدول الفرعي
- لماذا يجب علينا تقسيم قواعد البيانات والجداول (عند تصميم نظام عالي التزامن، كيف ينبغي تصميم مستوى قاعدة البيانات)؟ ما هي البرامج الوسيطة لقاعدة البيانات وتقسيم الجداول التي استخدمتها؟ ما هي مزايا وعيوب قواعد البيانات الفرعية المختلفة والبرمجيات الوسيطة للجداول الفرعية؟ كيف يمكنك تقسيم قاعدة البيانات عموديا أو أفقيا؟
- حاليا يوجد نظام غير مقسم إلى قواعد بيانات وجداول، وفي المستقبل سيتم تقسيمه إلى قواعد بيانات وجداول. كيفية تصميمه بحيث يمكن للنظام التحول ديناميكيا من قواعد البيانات والجداول غير المقسمة إلى قواعد البيانات والجداول المقسمة؟
- كيفية تصميم قاعدة بيانات فرعية ومخطط جدول يمكن توسيعه وتقليصه ديناميكيًا؟
- بعد تقسيم قاعدة البيانات إلى جداول، كيف يتم التعامل مع المفتاح الأساسي للمعرف؟
القراءة والكتابة الانفصال
- كيف ندرك الفصل بين القراءة والكتابة في MySQL؟ ما هو مبدأ النسخ المتماثل لـ MySQL السيد والعبد؟ كيفية حل مشكلة تأخير مزامنة MySQL الرئيسية والعبد؟
نظام التزامن العالي
- كيفية تصميم نظام عالي التزامن؟
النظام الموزع
مقابلة القصف التسلسلي
انقسام النظام
- لماذا انقسم النظام؟ كيفية تنفيذ تقسيم النظام؟ هل من المقبول عدم استخدام Dubbo بعد التقسيم؟
إطار الخدمة الموزعة
- قل لي كيف يعمل دوبو؟ هل يمكن أن يستمر الاتصال إذا كان مركز التسجيل معطلاً؟
- ما هي بروتوكولات التسلسل التي يدعمها Dubbo؟ أخبرني عن بنية البيانات من هسه؟ هل يعرف بي بي؟ لماذا يعتبر PB هو الأكثر كفاءة؟
- ما هي إستراتيجيات موازنة التحميل الخاصة بـ Dubbo واستراتيجيات تحمل خطأ المجموعة؟ ماذا عن استراتيجيات الوكيل الديناميكية؟
- ما هي فكرة Dubbo's spi؟
- كيفية تنفيذ إدارة الخدمة وتدهور الخدمة وإعادة المحاولة الفاشلة وإعادة المحاولة للمهلة بناءً على Dubbo؟
- كيفية تصميم قصور واجهات الخدمة الموزعة (على سبيل المثال، عدم وجود خصومات متكررة)؟
- كيفية التأكد من ترتيب طلبات واجهة الخدمة الموزعة؟
- كيف تصمم إطار عمل RPC مشابهًا لـ Dubbo بنفسك؟
- ما هو P من نظرية CAP؟
القفل الموزع
- ما هي سيناريوهات تطبيق Zookeeper؟
- كيفية تصميم الأقفال الموزعة باستخدام Redis؟ هل من الممكن استخدام Zookeeper لتصميم الأقفال الموزعة؟ أي من طريقتي تنفيذ القفل الموزع أعلاه أكثر كفاءة؟
المعاملات الموزعة
- هل تفهم المعاملات الموزعة؟ كيف يمكنك حل مشكلة المعاملات الموزعة؟ TCC ماذا علي أن أفعل إذا فشلت الشبكة في الاتصال؟ كيفية التأكد من اتساق XA؟
جلسة موزعة
- كيفية تنفيذ الجلسة الموزعة أثناء نشر المجموعة؟
الهندسة المعمارية المتاحة للغاية
- مقدمة عن هيستريكس
- بنية نظام صفحة تفاصيل موقع التجارة الإلكترونية
- تطبق تقنية Hystrix Thread Pool عزل الموارد
- تقوم آلية الإشارة Hystrix بتنفيذ عزل الموارد
- التحكم الدقيق في سياسات عزل Hystrix
- تعمق في التفاصيل الداخلية لتنفيذ Hystrix
- تحسين واجهة الاستعلام عن بيانات المنتج المجمعة بناءً على تقنية التخزين المؤقت للطلبات
- آلية التدهور الاحتياطي تعتمد على ذاكرة التخزين المؤقت المحلية
- نظرة متعمقة على مبادئ تشغيل قواطع دوائر Hystrix
- نظرة متعمقة على عزل تجمع سلاسل عمليات Hystrix وتحديد تيار الواجهة
- توفير الحماية الأمنية لمهلة استدعاء واجهة الخدمة بناءً على آلية المهلة
نظام متاح للغاية
- كيفية تصميم نظام متاح للغاية؟
الحد الحالي
- كيفية الحد من التدفق؟ كيف تفعل ذلك في العمل؟ أخبرني عن التنفيذ المحدد؟
فتيل
- كيفية أداء قاطع الدائرة؟
- ما هي أطر الصمامات؟ هل تعرف مبدأ التنفيذ المحدد؟
- كيفية إجراء الاختيار الفني لإطار الصمامات؟ الحارس أو Hystrix؟
الرجوع إلى إصدار سابق
بنية الخدمات الدقيقة
- يعد الفصل بأكمله الخاص ببنية الخدمات الصغيرة بمثابة إضافة إضافية وسيتم تحديثه لاحقًا. كما نرحب بالقراء للمشاركة في التحسينات الإضافية.
- وصف بنية الخدمات المصغرة
- الانتقال من الهندسة المعمارية المتجانسة إلى هندسة الخدمات الصغيرة
- إدارة البيانات المستندة إلى الأحداث للخدمات الصغيرة
- اختر استراتيجية نشر الخدمات الصغيرة
- مزايا وعيوب بنية الخدمات الصغيرة
بنية الخدمات الصغيرة لـ Spring Cloud
- ما هي الخدمات المصغرة؟ كيف تتواصل الخدمات الصغيرة بشكل مستقل؟
- ما هي الاختلافات بين Spring Cloud و Dubbo؟
- Spring Boot وSpring Cloud، هل تتحدث عن فهمك لهما؟
- ما هو قاطع دائرة الخدمة؟ ما هو خفض مستوى الخدمة؟
- ما هي مميزات وعيوب الخدمات المصغرة؟ أخبرنا عن العقبات التي واجهتك أثناء تطوير المشروع؟
- ما هي مجموعات تكنولوجيا الخدمات الصغيرة التي تعرفها؟
- استراتيجية حوكمة الخدمات الصغيرة
- يمكن لكل من Eureka وZookeeper توفير وظائف تسجيل الخدمة واكتشافها. ما الفرق بينهما؟
- دعونا نتحدث عن عملية الاتصال الرئيسية لمكون اكتشاف الخدمة Eureka؟
- ...
معالجة البيانات الضخمة
- كيف يمكنك العثور على نفس عنوان URL من عدد كبير من عناوين URL؟
- كيفية العثور على كلمات عالية التردد من كميات كبيرة من البيانات؟
- كيف يمكنك معرفة عنوان IP الذي يزور موقع Baidu أكثر من غيره في يوم معين؟
- كيفية العثور على أعداد صحيحة فريدة في كمية كبيرة من البيانات؟
- كيفية تحديد ما إذا كان الرقم موجودًا في كمية كبيرة من البيانات؟
- كيفية الاستعلام عن سلاسل الاستعلام الأكثر شيوعًا؟
- كيفية حساب عدد أرقام الهواتف المختلفة؟
- كيف تجد الوسيط من 500 مليون رقم؟
- كيفية الفرز حسب تكرار الاستعلام؟
- كيف تجد أفضل 500 رقم؟
- أخبرني عن الإجراءات الشائعة لمشكلات TopK في البيانات الضخمة؟
اتجاهات النجوم
ملاحظة: يتم تحديث مخطط الاتجاه هذا تلقائيًا بانتظام من خلال مخططات النجوم، المؤلف @MaoLongLong
مشروعات Doocs لجودة المجتمع
يلتزم مجتمع تقنية Doocs بإنشاء نظام تعليمي متكامل ومتزايد باستمرار لمطوري الإنترنت! فيما يلي بعض المشاريع الممتازة ضمن Doocs، نرحب بأصدقاء المطورين لمواصلة الاهتمام بها.
# | مشروع | يصف | حرارة |
---|
1 | Advanced-Java | مهندسو Internet Java على دراية تامة بالمعرفة المتقدمة: تغطية المعرفة في مجالات مثل التزامن العالي، والتوزيع، والتوافر العالي، والخدمات الصغيرة، ومعالجة البيانات الضخمة. |
|
2 | com.leetcode | مجموعة متنوعة من لغات البرمجة تنفذ حلول المشكلات LeetCode و"Sword Pointer Offer (الإصدار الثاني)" و"Programmer Interview Code (الإصدار السادس)". |
|
3 | صائد الكود المصدري | تحليل كود المصدر لأطر مكونات الإنترنت المشتركة. |
|
4 | jvm | ملخص المعرفة حول المبادئ الأساسية لجهاز Java الظاهري. |
|
5 | مقابلة الترميز | مجموعة من أسئلة مقابلات البرمجة، بما في ذلك "نقاط السيف التي يجب تقديمها"، و"جمال البرمجة"، وما إلى ذلك. |
|
6 | دكتور في الطب | محرر WeChat Markdown موجز للغاية. |
|
7 | الكتب التقنية | قائمة الكتب التقنية التي تستحق القراءة. |
|
مساهم
شكرًا لجميع الأصدقاء المذكورين أدناه على مساهماتهم في مجتمع Doocs الفني. الرجاء النقر هنا للمشاركة في صيانة المشروع.
الحساب الرسمي
الحساب العام الوحيد " Docs " ضمن مجتمع تكنولوجيا Doocs، مرحبًا بك لمسح رمز الاستجابة السريعة ضوئيًا للمتابعة، مع التركيز على مشاركة المعرفة ذات الصلة في المجال التقني وأحدث معلومات الصناعة . بالطبع، يمكنك أيضًا إضافة حساب WeChat الشخصي الخاص بي (ملاحظة: GitHub) لإدخالك إلى مجموعة التبادل الفني.
اتبع الحساب العام " Doocs " وقم بالرد على ملف PDF للحصول على مستند PDF الخاص بهذا المشروع دون اتصال بالإنترنت (283 صفحة جوهرية)، مما يجعل التعلم أكثر ملاءمة!