C++ में माइक्रोसर्विसेज़: 2024 में कहाँ से शुरू करें

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

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

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

C++ में माइक्रोसर्विसेज़: 2024 में कहाँ से शुरू करें

\n\n

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

\n\n

इस लेख में, मैं दिखाऊंगा कि वास्तव में कहाँ से शुरू करें: हम एक फ्रेमवर्क चुनेंगे, एक सरल HTTP सेवा लिखेंगे, gRPC जोड़ेंगे और सब कुछ Docker में पैकेज करेंगे। कोई बकवास नहीं - केवल कोड और अभ्यास।

\n\n
\n\n

C++ में माइक्रोसर्विसेज़ क्यों पागलपन नहीं है?

\n\n

C++ के विरोधियों का मुख्य तर्क: "लिखने में लंबा समय लगता है, गलती करना आसान है।" लेकिन स्मार्ट पॉइंटर्स, STL कंटेनर और RAII के साथ आधुनिक C++ आपको लगभग उतनी ही तेज़ी से लिखने की अनुमति देता है जितना Go में, साथ ही मेमोरी पर पूर्ण नियंत्रण देता है। लाभ स्पष्ट हैं:

\n\n
    \n
  • गति — C++ I/O संचालन और गणनाओं में Java/Python से 2-10 गुना तेज़ है।
  • \n
  • मेमोरी खपत — C++ पर एक सामान्य माइक्रोसर्विस 5-15 MB लेता है, जबकि Java पर 50-150 MB।
  • \n
  • GC का अभाव — कोई "फ्रीज़" नहीं, अनुमानित विलंबता।
  • \n
  • पारिस्थितिकी तंत्र — gRPC, Boost, nlohmann/json, Crow, Drogon — सब कुछ बॉक्स से बाहर काम करता है।
  • \n
\n\n

नुकसान भी हैं: सख्त कंपाइलर, लंबा बिल्ड, डीबग करना कठिन। लेकिन अगर आपको वित्तीय प्रणालियों, गेम सर्वर या IoT के स्तर के प्रदर्शन की आवश्यकता है, तो C++ उचित है।

\n\n
\n\n

फ्रेमवर्क चुनना: Crow बनाम Drogon बनाम Pistache

\n\n

त्वरित शुरुआत के लिए, सॉकेट पर HTTP सर्वर को खरोंच से लिखने की आवश्यकता नहीं है। तीन लोकप्रिय विकल्प हैं:

\n\n

1. Crow (हल्का, header-only)

\n

5-10 एंडपॉइंट तक के माइक्रोसर्विसेज़ के लिए आदर्श। बस एक हेडर फ़ाइल शामिल करें - और हो गया। नुकसान: HTTP/2 का समर्थन नहीं करता, कमज़ोर रूटिंग।

\n\n

2. Drogon (पूर्ण-विशेषताओं वाला)

\n

गंभीर प्रोजेक्ट के लिए सबसे अच्छा विकल्प: HTTP/1.1 और HTTP/2, WebSocket, AOP, डेटाबेस के साथ काम, ORM। Drogon ASP.NET और Django से प्रेरित है - यह मॉडल से स्वचालित रूप से JSON उत्पन्न भी कर सकता है।

\n\n

3. Pistache (आधुनिक लेकिन कच्चा)

\n

एक दिलचस्प विकल्प, लेकिन अभी तक प्रोडक्शन के लिए स्थिर नहीं है।

\n\n

मैं Crow से शुरू करने की सलाह देता हूं - यह न्यूनतम है और आपको 10 मिनट में एक कार्यशील REST API देता है। और गंभीर प्रोजेक्ट के लिए Drogon की ओर देखें।

\n\n
\n\n

अभ्यास: Crow के साथ C++ में माइक्रोसर्विस लिखना

\n\n

हम एक सरल सेवा बनाएंगे जो उपयोगकर्ता नाम के साथ JSON प्राप्त करती है और अभिवादन लौटाती है। यह एक क्लासिक "Hello World" है, लेकिन माइक्रोसर्विस शैली में।

\n\n

चरण 1. निर्भरताएँ स्थापित करना

\n

आपको CMake और C++17 समर्थन वाले कंपाइलर (gcc 9+, clang 10+) की आवश्यकता होगी। Crow header-only है, इसलिए बस रिपॉजिटरी से crow_all.h फ़ाइल कॉपी करें।

\n\n
# Crow डाउनलोड करें\nwget https://github.com/CrowCpp/Crow/releases/download/v1.1.0/crow_all.h\n
\n\n

चरण 2. सेवा का कोड

\n\n
// main.cpp\n#include "crow_all.h"\n#include <iostream>\n#include <string>\n\nint main() {\n    crow::SimpleApp app;\n\n    // GET /hello — स्वास्थ्य जांच\n    CROW_ROUTE(app, "/hello")\n    ([](){\n        return crow::response(200, "Hello, World!");\n    });\n\n    // POST /greet — JSON प्राप्त करता है {"name": "Alice"}\n    CROW_ROUTE(app, "/greet").methods(crow::HTTPMethod::POST)\n    ([](const crow::request& req){\n        auto body = crow::json::load(req.body);\n        if (!body || !body.has("name")) {\n            return crow::response(400, "Bad Request: missing 'name'");\n        }\n        std::string name = body["name"].s();\n        crow::json::wvalue result;\n        result                

ब्लॉग

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