Micro service
✅ १. मायक्रोसर्व्हिस म्हणजे काय?
उत्तर: मायक्रोसर्व्हिस म्हणजे मोठ्या अॅप्लिकेशनचे छोटे, स्वतंत्र युनिट्समध्ये विभागलेले आर्किटेक्चर. प्रत्येक सेवा एक विशिष्ट काम करते व REST API/Synchronous किंवा Message Queue/Asynchronous पद्धतीने इतर सेवांशी संवाद साधते.
✅ २. Monolithic व Microservices यामधील फरक काय आहे?
उत्तर:
Monolithic | Microservices |
---|---|
एकाच codebase मध्ये logic | स्वतंत्र सेवांमध्ये विभागलेले |
स्केलिंग अवघड | स्वतंत्र स्केलेबल |
एकच डेटाबेस | प्रत्येक सेवेला वेगळा डेटाबेस |
✅ ३. C# मध्ये मायक्रोसर्व्हिस कशी तयार केली जाते?
उत्तर:
ASP.NET Core वापरून Web API तयार केली जाते. Startup.cs
किंवा Program.cs
मध्ये Middleware, DI इ. कॉन्फिगर करतो. REST API वापरून इतर सेवा access करता येतात.
✅ ४. Gateway म्हणजे काय आणि ते का वापरतात?
उत्तर:
API Gateway (उदा: Ocelot) हे क्लायंट आणि मायक्रोसर्व्हिसेसमधील इंटरफेस असतो. हे रूटिंग, रेट लिमिटिंग, लॉगिंग, सिक्युरिटी आणि ऑथेंटिकेशन व्यवस्थापित करतो. GAIL मध्ये "G" म्हणजे Gateway.
✅ ५. .NET मध्ये सेवा एकमेकांशी कशी communicate करतात?
उत्तर:
-
Synchronous: REST API (
HttpClientFactory
) -
Asynchronous: Messaging (RabbitMQ, Azure Service Bus, Kafka)
✅ ६. Service Discovery म्हणजे काय?
उत्तर:
सेवा dynamic scale होतात तेव्हा त्यांचे IP बदलतात. Service Registry (उदा. Consul, Eureka) मधून इतर सेवांना त्या सापडतात. Kubernetes देखील DNS आधारित discovery करतो.
✅ ७. .NET मध्ये Dependency Injection कसे वापरता?
उत्तर:
ASP.NET Core मध्ये IServiceCollection
वापरून AddScoped
, AddSingleton
, AddTransient
द्वारा DI करता येते.
✅ ८. HttpClientFactory
काय आहे?
उत्तर:
हे reuse करण्यायोग्य, thread-safe HttpClient
instances तयार करते. DNS आणि socket exhaustion ची समस्या टाळते.
✅ ९. प्रत्येक मायक्रोसर्व्हिससाठी वेगळा डेटाबेस का वापरतात?
उत्तर:
डेटा encapsulation आणि डेटा ओनरशिपसाठी. एकमेकांच्या डेटावर अवलंबून न राहता, प्रत्येक सेवा आपला डेटा व्यवस्थापित करते.
✅ १०. Eventual Consistency काय असते?
उत्तर:
सर्व्हिसेसमध्ये डेटा sync होण्यास थोडा वेळ लागू शकतो. हे Async messaging (e.g., RabbitMQ + Outbox pattern) वापरून साध्य होते.
✅ ११. Logging मायक्रोसर्व्हिसेसमध्ये कसे करावे?
उत्तर:
-
Serilog
,ELK Stack
,Application Insights
वापरले जातात. -
लॉग्स Centralize करून प्रत्येक सेवा ट्रेस करता येते.
(इथे "L" म्हणजे Logging - GAIL)
✅ १२. Health Monitoring कसे कराल?
उत्तर:
-
ASP.NET Core मध्ये
HealthChecks
middleware वापरतो. -
Kubernetes probes (liveness/readiness) वापरतो.
✅ १३. BackgroundService किंवा IHostedService कशासाठी वापरतात?
उत्तर:
या क्लासेस schedule task किंवा background worker साठी वापरतात. उदा. Queue message processor.
✅ १४. Circuit Breaker म्हणजे काय?
उत्तर:
जर downstream सेवा काम करत नसेल तर Circuit Breaker (उदा. Polly) फॉल्ट टॉलरंट सिस्टम तयार करतो.
✅ १५. सिग्नलआर (SignalR) कधी वापरावा?
उत्तर:
Real-time communication (e.g., Chat apps, dashboards) साठी वापरला जातो. WebSocket fallback ची support असते.
✅ १६. Event-driven architecture मध्ये C# मायक्रोसर्व्हिसेस कसे असतात?
उत्तर:
Producer घटना (Events) तयार करतो. Consumer त्या consume करतो. हे कधी कधी Domain Events किंवा Integration Events च्या स्वरूपात असते.
✅ १७. Microservices मध्ये Authentication/Authorization कसे कराल?
उत्तर:
-
IdentityServer किंवा Azure AD वापरून token-based ऑथेंटिकेशन करता येते.
-
Gateway layer मध्ये policy लागवली जाते.
✅ १८. Retry आणि Timeout पॉलिसी कशी लावाल?
उत्तर:
Polly वापरून Retry
, CircuitBreaker
, Timeout
policies HttpClientFactory
बरोबर configure करता येतात.
✅ १९. .NET मध्ये मायक्रोसर्व्हिसेसचा CI/CD कसा कराल?
उत्तर: GitHub Actions, Azure DevOps किंवा Jenkins वापरून CI/CD pipeline तयार करता येते. Docker + Kubernetes वापरून डिप्लॉय करता येते.
✅ २०. Microservices मध्ये GAIL म्हणजे काय?
उत्तर: GAIL म्हणजे Microservices ecosystem चे ४ मुख्य भाग:
-
G - Gateway (Ocelot, YARP)
-
A - API (ASP.NET Core Web API)
-
I - Infrastructure (Docker, Kubernetes, Service Bus)
-
L - Logging (Serilog, ELK, Seq)
हवे असल्यास मी एक PDF/cheat sheet स्वरूपातही हे देऊ शकतो. कोणत्या भागात अधिक डीप जावे वाटते का?
Comments
Post a Comment