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

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

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

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

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



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



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



माइक्रोसर्विसेज़ एक दृष्टिकोण है जिसमें एप्लिकेशन को स्वतंत्र, शिथिल रूप से जुड़ी सेवाओं में विभाजित किया जाता है। प्रत्येक सेवा अपने व्यावसायिक कार्य के लिए जिम्मेदार होती है और दूसरों से स्वतंत्र रूप से विकसित, तैनात और स्केल की जा सकती है।



.NET डेवलपर के लिए प्रमुख सिद्धांत:

  • एकल जिम्मेदारी (Single Responsibility) — प्रत्येक माइक्रोसर्विस एक कार्य हल करती है।
  • डेटा स्वतंत्रता — प्रत्येक सेवा का अपना डेटाबेस होता है (Database per Service)।
  • शिथिल युग्मन (Loose Coupling) — सेवाएं साझा मेमोरी के बजाय API के माध्यम से संवाद करती हैं।
  • स्वायत्तता — पूरे सिस्टम को रोके बिना सेवा को बदला और पुनः तैनात किया जा सकता है।


C# में एक नया माइक्रोसर्विस प्रोजेक्ट बनाने के लिए कमांड का उपयोग करें:

dotnet new webapi -n UserServicedotnet new webapi -n OrderServicedotnet new webapi -n NotificationService


प्रत्येक प्रोजेक्ट को अपना Program.cs, कॉन्फ़िगरेशन और निर्भरताएं मिलती हैं।



2. अंतर-सेवा संचार: REST और gRPC



.NET में माइक्रोसर्विसेज़ के बीच संवाद के दो मुख्य दृष्टिकोण हैं: सिंक्रोनस (REST/gRPC) और एसिंक्रोनस (मैसेज ब्रोकर के माध्यम से)। दोनों पर विचार करें।



HttpClient का उपयोग करके REST API

सबसे सरल तरीका टाइप किया गया क्लाइंट बनाने के लिए HttpClientFactory का उपयोग करना है।



// OrderService सेवा के Program.cs मेंbuilder.Services.AddHttpClient<IUserServiceClient, UserServiceClient>(client =>{    client.BaseAddress = new Uri("http://userservice:5000");});

// UserServiceClient.cspublic class UserServiceClient : IUserServiceClient{ private readonly HttpClient _httpClient;

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

public async Task<UserDto> GetUserAsync(int userId) { var response = await _httpClient.GetAsync($"/api/users/{userId}"); response.EnsureSuccessStatusCode(); return await response.Content.ReadFromJsonAsync<UserDto>(); }}


सुझाव: पुनः प्रयास नीतियों और Circuit Breaker को लागू करने के लिए Polly (.NET के लिए लाइब्रेरी) का उपयोग करें।



उच्च-प्रदर्शन परिदृश्यों के लिए gRPC

gRPC HTTP/2 पर काम करता है और सीरियलाइज़ेशन के लिए Protocol Buffers का उपयोग करता है। यह JSON से काफी तेज़ है।



// user.proto में सेवा की परिभाषाservice UserGrpcService {  rpc GetUser (GetUserRequest) returns (UserResponse);}

// C# पर सर्वर कोडpublic class UserGrpcServiceImpl : UserGrpcService.UserGrpcServiceBase{ public override Task<UserResponse> GetUser(GetUserRequest request, ServerCallContext context) { var user = _dbContext.Users.Find(request.UserId); return Task.FromResult(new UserResponse { Id = user.Id, Name = user.Name, Email = user.Email }); }}


3. डेटा और लेन-देन का प्रबंधन



माइक्रोसर्विसेज़ में, प्रत्येक डेटाबेस केवल एक सेवा से संबंधित होता है। यह सेवाओं के बीच सीधे SQL क्वेरी को समाप्त करता है। .NET में डेटा के साथ काम करने के लिए Entity Framework Core मानक है।



माइक्रोसर्विस के लिए DbContext कॉन्फ़िगरेशन का उदाहरण

public cla                

ब्लॉग

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