Microservices2 دقیقه مطالعه
معماری میکروسرویس چیست؟
میکروسرویس یک سیستم بزرگ را به سرویسهای کوچک، مستقل و با دیتابیس جدا تقسیم میکند.
چرا مهم است؟
در آگهیهای Senior، حتی گاهی Mid، بهعنوان یکی از معیارهای تجربه با سیستمهای در مقیاس بزرگ پرسیده میشود.
ویژگیهای کلیدی
- هر سرویس مسئولیت یک قابلیت کسبوکار مشخص را دارد (مثلاً Order Service، Payment Service).
- هر سرویس دیتابیس مستقل خودش را دارد (بدون Join مستقیم بین دیتابیس سرویسها).
- سرویسها از طریق API (REST/gRPC) یا پیام (RabbitMQ/Kafka) با هم ارتباط دارند.
- هر سرویس میتواند مستقل از بقیه Deploy شود.
ارتباط بین سرویسها
// Order Service با gRPC از Inventory Service موجودی را میپرسد
var reply = await _inventoryClient.CheckStockAsync(new StockRequest { ProductId = 5 });
چالشهای اصلی
- Distributed Transaction: تراکنشی که چند سرویس را درگیر میکند (راهحل رایج: Saga Pattern).
- Observability: ردیابی درخواست بین چند سرویس (Correlation Id، Distributed Tracing).
- Network Latency: هر فراخوانی بینسرویسی یک فراخوانی شبکهای است، نه یک متد داخلی.
اشتباه رایج
❌ شروع یک پروژهٔ کوچک/جدید مستقیماً با معماری میکروسرویس — پیچیدگی عملیاتی (Deploy، Monitoring، Network) را از ابتدا اضافه میکند. ✅ اغلب توصیه میشود با یک Modular Monolith شروع کرد و در صورت نیاز واقعی به میکروسرویس مهاجرت کرد.
خلاصه
میکروسرویس سیستم را به سرویسهای کوچک و مستقل با دیتابیس جدا تقسیم میکند؛ ارتباط از طریق API یا پیامرسانی انجام میشود؛ برای پروژههای کوچک معمولاً Modular Monolith گزینهٔ بهتری است.
حالا امتحان کن
🧩آزمون مبانی میکروسرویس3 سؤال · نمره قبولی 60٪این مطلب مفید بود؟
☆نشان کردن