C++ में माइक्रोसर्विसेज़: आर्किटेक्चर, अभ्यास और कोड उदाहरण

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

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

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

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



माइक्रोसर्विस आर्किटेक्चर (MSA) आधुनिक वितरित सिस्टम बनाने के प्रमुख दृष्टिकोणों में से एक है। हालाँकि C++ को Go, Java या Python की तुलना में माइक्रोसर्विसेज़ से कम जोड़ा जाता है, फिर भी यह उन परिदृश्यों के लिए अपरिहार्य है जहाँ प्रदर्शन, कम विलंबता और कुशल मेमोरी उपयोग महत्वपूर्ण हैं। इस लेख में, हम चर्चा करेंगे कि C++ में माइक्रोसर्विसेज़ कैसे बनाएं, किन फ्रेमवर्क और लाइब्रेरी का उपयोग करें, और व्यावहारिक कोड उदाहरण देखेंगे।



C++ माइक्रोसर्विसेज़ के लिए क्यों?

माइक्रोसर्विसेज़ विकसित करने में C++ के मुख्य लाभ:

  • अधिकतम प्रदर्शन — C++ न्यूनतम प्रतिक्रिया समय (latency) और उच्च थ्रूपुट (throughput) प्राप्त करने की अनुमति देता है।
  • संसाधनों पर नियंत्रण — मैन्युअल मेमोरी प्रबंधन और हार्डवेयर स्तर पर अनुकूलन।
  • परिपक्व लाइब्रेरी — Boost, Poco, cpp-httplib, gRPC, Crow।
  • Legacy सिस्टम के साथ एकीकरण — अक्सर C++ का उपयोग उच्च-लोड सिस्टम (वित्त, दूरसंचार, गेम) के कोर में किया जाता है।


C++ में माइक्रोसर्विस आर्किटेक्चर



मुख्य घटक

C++ में एक विशिष्ट माइक्रोसर्विस में शामिल हैं:

  • HTTP/REST सर्वर — अनुरोध प्राप्त करने के लिए (उदाहरण के लिए, cpp-httplib या Crow का उपयोग करके)।
  • बिज़नेस लॉजिक — डेटा प्रोसेसिंग मॉड्यूल।
  • अंतर-सेवा संचार के लिए क्लाइंट — gRPC या HTTP क्लाइंट।
  • स्टोरेज के साथ कार्य — लाइब्रेरी (libpqxx, redis-plus-plus, librdkafka) के माध्यम से PostgreSQL, Redis या Kafka से कनेक्शन।


सेवाओं के बीच संचार

दो मुख्य प्रोटोकॉल:

  • gRPC — Protobuf पर आधारित बाइनरी प्रोटोकॉल, सख्त टाइपिंग और उच्च गति प्रदान करता है।
  • REST (JSON) — बाहरी API के लिए सुविधाजनक, लेकिन सीरियलाइज़ेशन के कारण धीमा।


अभ्यास: C++ में माइक्रोसर्विस बनाना



1. cpp-httplib का उपयोग करके सरल REST API

एक न्यूनतम सेवा पर विचार करें जो GET अनुरोध प्राप्त करती है और JSON लौटाती है। लाइब्रेरी cpp-httplib header-only है, इसे आसानी से जोड़ा जा सकता है।



// main.cpp#include <httplib.h>#include <nlohmann/json.hpp>

using json = nlohmann::json;

int main() { httplib::Server svr;

// GET /hello — JSON लौटाता है svr.Get("/hello", [](const httplib::Request& req, httplib::Response& res) { json response; response["message"] = "Hello from C++ microservice!"; response["status"] = "ok"; res.set_content(response.dump(), "application/json"); });

// POST /data — JSON प्राप्त करता है और प्रोसेस करता है svr.Post("/data", [](const httplib::Request& req, httplib::Response& res) { try { auto input = json::parse(req.body); int value = input["value"]; json result; result["squared"] = value * value; res.set_content(result.dump(), "application/json"); } catch (const std::exception& e) { res.status = 400; res.set_content("{\\"error\\":\\"Invalid JSON\\"}", "application/json"); } });

std::cout << "Server started on port 8080"; svr.listen("0.0.0.0", 8080); return 0;}


बिल्ड (आवश्यक है nlohmann/json स्थापित होना):

g++ -std=c++17 main.cpp -o microservice -lpthread./microservice


2. gRPC के साथ माइक्रोसर्विस

gRPC के लिए .proto फ़ाइल में सेवा को परिभाषित करना आवश्यक है। उदाहरण:



// calculator.protosyntax = "proto3";

service Calculator { rpc Add (AddRequest) returns (AddResponse);}

message AddRequest { int32 a = 1; int32 b = 2;}

ब्लॉग

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