تتمثل إحدى الفوائع الرئيسية للخدمات الدقيقة في توسيع نطاق كل خدمة بشكل مستقل لمطابقة الحمل الخاص بها، بدلاً من توسيع نطاق التطبيق بأكمله. يصبح العثور على الاختناقات بعد ذلك مسألة قياس لكل خدمة وفي كل قفزة.
تتمثل إحدى الفوائع الرئيسية للخدمات الدقيقة في توسيع نطاق كل خدمة بشكل مستقل لمطابقة الحمل الخاص بها، بدلاً من توسيع نطاق التطبيق بأكمله. يصبح العثور على الاختناقات بعد ذلك مسألة قياس لكل خدمة وفي كل قفزة.
# Kubernetes HPA: scale orders on CPU
minReplicas: 3
maxReplicas: 20
metric: cpu
targetUtilization: 70 # add pods when avg CPU > 70%
1. Metrics: which service has high latency / saturation? (RED/USE)
2. Traces: which SPAN in the request is slow?
3. Drill in: DB query? lock? N+1 calls? GC pause?
Gateway ──┤ Orders ──┤ Payments ████████████ ← 80% of latency here
Inventory ─┤
⚠️ Chatty synchronous calls (fan-out per request)
⚠️ Shared/overloaded database
⚠️ Missing or cold cache
⚠️ Unbounded retries amplifying load
توسيع نطاق خدمة يكون اختناقها هو قاعدة بيانات مشتركة يؤدي فقط إلى نقل المزيد من الحمل على قاعدة البيانات — قم بتوسيع نطاق القيد الفعلي، وليس العرض.
يتيح التوسع المستقل لك إنفاق السعة بدقة حيث يوجد الحمل، وهو أرخص بكثير من توسيع نطاق أحادي ضخم.
لكن التوسع الأعمى يهدر المال ويمكن أن يزعج الأمور؛ قياس مقاييس كل خدمة وتتبع كل قفزة هو ما يخبرك بالقيد الحقيقي الذي يجب إصلاحه.
مكتبة من أسئلة مقابلات تقنية المعلومات مع إجابات مفصّلة — من المبتدئ إلى المتقدم.
تبرع