C# (.NET) पर माइक्रोसर्विसेज़: आर्किटेक्चर और अभ्यास

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें
```html

C# (.NET) पर माइक्रोसर्विसेज़: सिद्धांत से व्यवहार तक



आधुनिक सॉफ्टवेयर विकास में, माइक्रोसर्विस आर्किटेक्चर स्केलेबल और फॉल्ट-टॉलरेंट सिस्टम बनाने का मानक बन गया है। .NET प्लेटफ़ॉर्म C# पर विश्वसनीय माइक्रोसर्विसेज़ बनाने के लिए सभी आवश्यक उपकरण प्रदान करता है। इस लेख में, हम आर्किटेक्चर के प्रमुख सिद्धांतों, व्यावहारिक कोड उदाहरणों और सर्वोत्तम प्रथाओं पर चर्चा करेंगे जो आपको C# पर माइक्रोसर्विसेज़ बनाना शुरू करने में मदद करेंगे।



1. .NET पर माइक्रोसर्विस आर्किटेक्चर के मूल सिद्धांत



माइक्रोसर्विसेज़ एक विकास दृष्टिकोण है जिसमें एप्लिकेशन को छोटी, स्वतंत्र सेवाओं में विभाजित किया जाता है, जिनमें से प्रत्येक अपने स्वयं के व्यावसायिक कार्य के लिए जिम्मेदार होती है। .NET इकोसिस्टम में, इसके लिए ASP.NET Core का उपयोग किया जाता है - एक हल्का और क्रॉस-प्लेटफ़ॉर्म फ्रेमवर्क।



C# पर माइक्रोसर्विसेज़ के प्रमुख सिद्धांत:

  • स्वतंत्र डिप्लॉयमेंट — प्रत्येक सेवा को दूसरों को रोके बिना अपडेट किया जा सकता है।
  • कमजोर युग्मन (Loose Coupling) — सेवाएं API (REST, gRPC) या मैसेज क्यू के माध्यम से संवाद करती हैं।
  • स्वयं का डेटाबेस — प्रत्येक माइक्रोसर्विस अपने डेटा का मालिक होती है (Database per Service)।
  • फॉल्ट टॉलरेंस — एक सेवा की विफलता पूरे सिस्टम को ब्लॉक नहीं करनी चाहिए।


आइए C# पर एक सरल माइक्रोसर्विस बनाकर शुरू करें। हम ASP.NET Core Web API टेम्पलेट का उपयोग करेंगे।



// माइक्रोसर्विस प्रोजेक्ट बनानाdotnet new webapi -n OrderServicecd OrderService

// एक सरल कंट्रोलर का उदाहरण[ApiController][Route("api/[controller]")]public class OrdersController : ControllerBase{ private readonly IOrderRepository _repository;

public OrdersController(IOrderRepository repository) { _repository = repository; }

[HttpGet("{id}")] public async Task<IActionResult> GetOrder(int id) { var order = await _repository.GetByIdAsync(id); if (order == null) return NotFound(); return Ok(order); }

[HttpPost] public async Task<IActionResult> CreateOrder(OrderDto orderDto) { var order = new Order(orderDto.CustomerId, orderDto.TotalAmount); await _repository.AddAsync(order); return CreatedAtAction(nameof(GetOrder), new { id = order.Id }, order); }}


2. अंतर-सेवा संचार: REST, gRPC और क्यू



माइक्रोसर्विसेज़ को एक-दूसरे से संवाद करना होता है। .NET में तीन मुख्य दृष्टिकोण उपलब्ध हैं:



REST API (HTTP)

सबसे सरल और सामान्य तरीका। कनेक्शन के उचित प्रबंधन के लिए फैक्ट्री के साथ HttpClient का उपयोग करें।



// HttpClient के माध्यम से दूसरी माइक्रोसर्विस को कॉल करने का उदाहरणpublic class InventoryServiceClient{    private readonly HttpClient _httpClient;

public InventoryServiceClient(HttpClient httpClient) { _httpClient = httpClient; }

public async Task<bool> CheckStockAsync(int productId, int quantity) { var response = await _httpClient.GetAsync( $"/api/inventory/check?productId={productId}&quantity={quantity}"); return response.IsSuccessStatusCode; }}

// Program.cs में रजिस्ट्रेशनbuilder.Services.AddHttpClient<InventoryServiceClient>(client =>{ client.BaseAddress = new Uri("http://inventory-service:5001");});


gRPC

उच्च-प्रदर्शन सिंक्रोनस संचार के लिए gRPC का उपयोग करें। यह HTTP/2 और Protocol Buffers पर आधारित है।



// .proto फ़ाइल में सेवा की परिभाषाsyntax = "proto3";

service OrderProcessor { rpc ProcessOrder (OrderRequest) returns (OrderResponse);}

message OrderRequest { int32 order_id = 1; string customer_email = 2;}

message OrderResponse { bool success = 1; string message = 2;}

// C# पर सर्वर साइडpublic class OrderProcessorService : OrderProcessor.OrderProcessorB ```

ब्लॉग

पुस्तक अनुशंसाएँ