C# में माइक्रोसर्विसेज़: आर्किटेक्चर और अभ्यास A से Z तक

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

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

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

C# में माइक्रोसर्विसेज़ का परिचय

माइक्रोसर्विस आर्किटेक्चर (MSA) सॉफ्टवेयर विकास का एक दृष्टिकोण है जिसमें एप्लिकेशन को छोटे, स्वतंत्र रूप से परिनियोजित सर्विसेज़ के सेट के रूप में बनाया जाता है। प्रत्येक सर्विस एक व्यावसायिक क्षमता को लागू करती है, उसका अपना डेटाबेस होता है, और इसे विभिन्न भाषाओं में लिखा जा सकता है। हालांकि, .NET इकोसिस्टम में, C# और ASP.NET Core प्लेटफ़ॉर्म विश्वसनीय माइक्रोसर्विसेज़ बनाने के लिए सबसे अच्छे टूल प्रदान करते हैं।

इस लेख में, हम C# में माइक्रोसर्विसेज़ बनाने के पूरे चक्र को देखेंगे: आर्किटेक्चर डिज़ाइन से लेकर कंटेनरों में परिनियोजन तक। आप सीखेंगे कि सर्विसेज़ के बीच इंटरैक्शन कैसे व्यवस्थित करें, उनकी दोष सहनशीलता और स्केलेबिलिटी कैसे सुनिश्चित करें।



1. .NET पर माइक्रोसर्विस आर्किटेक्चर का डिज़ाइन

पहला कदम मोनोलिथिक एप्लिकेशन को सर्विसेज़ में सही ढंग से विभाजित करना है। एक अच्छी प्रथा Domain-Driven Design (DDD) सिद्धांत का पालन करना और Bounded Contexts (सीमित संदर्भ) को अलग करना है।



1.1. सर्विसेज़ की सीमाएँ निर्धारित करना

प्रत्येक माइक्रोसर्विस को एक व्यावसायिक इकाई या प्रक्रिया के लिए जिम्मेदार होना चाहिए। उदाहरण के लिए, ऑनलाइन स्टोर के लिए, हम अलग कर सकते हैं:

  • Catalog Service — उत्पाद प्रबंधन
  • Order Service — ऑर्डर प्रोसेसिंग
  • Payment Service — भुगतान
  • Notification Service — सूचनाएँ

महत्वपूर्ण: प्रत्येक सर्विस का अपना डेटाबेस होता है। यह युग्मन को रोकता है और सर्विसेज़ को स्वतंत्र रूप से स्केल करने की अनुमति देता है।



1.2. ASP.NET Core प्रोजेक्ट की संरचना

C# में एक सामान्य माइक्रोसर्विस कई परतों से बना होता है:

  • API Layer — कंट्रोलर और middleware
  • Application Layer — CQRS, MediatR, कमांड और क्वेरी
  • Domain Layer — एंटिटीज़, value objects, एग्रीगेट
  • Infrastructure Layer — रिपॉजिटरी, DbContext, बाहरी सर्विसेज़

न्यूनतम निर्देशिका संरचना का उदाहरण:

MyMicroservice/├── MyMicroservice.Api/│   └── Controllers/├── MyMicroservice.Application/│   └── Commands/├── MyMicroservice.Domain/│   └── Entities/└── MyMicroservice.Infrastructure/    └── Data/


2. C# में माइक्रोसर्विस का कार्यान्वयन: व्यावहारिक उदाहरण

हम ASP.NET Core 8 और Entity Framework Core का उपयोग करके उत्पाद कैटलॉग प्रबंधन के लिए एक सरल सर्विस बनाएंगे।



2.1. WebApplication सेटअप

Program.cs फ़ाइल में, हम न्यूनतम API कॉन्फ़िगर करते हैं:

var builder = WebApplication.CreateBuilder(args);

// सर्विसेज़ जोड़ेंbuilder.Services.AddDbContext<CatalogDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("CatalogDb")));

builder.Services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Program).Assembly));

builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen();

var app = builder.Build();

// Middlewareif (app.Environment.IsDevelopment()){ app.UseSwagger(); app.UseSwaggerUI();}

app.UseHttpsRedirection();

// Minimal API endpointapp.MapGet("/api/products", async (IMediator mediator) =>{ var products = await mediator.Send(new GetProductsQuery()); return Results.Ok(products);});

app.Run();


2.2. डेटा मॉडल और CQRS

Product एंटिटी बनाएँ:

public class Product{    public Guid Id { get; set; }    public string Name { get; set; } = string.Empty;    public decimal Price { get; set; }    public string Category { get; set; } = string.Empty;}

कमांड और क्वेरी को अलग करने के लिए MediatR के साथ CQRS पैटर्न का उपयोग करें:

public record GetProductsQuery() : IRequest<List<Product>>;

public class GetProductsHandler : IRequestHandler<GetProduc

ब्लॉग

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