JavaScript में माइक्रोसर्विसेज: 20 मिनट में पहली सेवा बनाएं

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

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

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

JavaScript में माइक्रोसर्विसेज: शुरुआत कैसे करें ताकि हार न मानें

\n\n

क्या आपने कभी सोचा है कि Netflix, Uber या Amazon जैसी बड़ी कंपनियों ने माइक्रोसर्विसेज क्यों अपनाई? यह फैशन नहीं, बल्कि जरूरत है। जब आपका मोनोलिथ 50 GB का हो और टीम में 100 डेवलपर हों, तो कोड में हर बदलाव रूसी रूलेट जैसा लगता है।

\n\n

लेकिन अच्छी खबर यह है: JavaScript में माइक्रोसर्विसेज कोई rocket science नहीं है। आज मैं आपको दिखाऊंगा कि कैसे 20 मिनट में एक काम करने वाली आर्किटेक्चर बनाएं, जिसे इंटरव्यू में या अपने pet-project में दिखाने में शर्म न आए।

\n\n

सरल शब्दों में माइक्रोसर्विस क्या है?

\n\n

एक स्विस नाइफ की कल्पना करें। मोनोलिथिक आर्किटेक्चर में यह एक बड़ा चाकू है जिसमें सौ ब्लेड हैं। एक ब्लेड टूटा? पूरा चाकू फेंक दो। माइक्रोसर्विसेज अलग-अलग चाकूओं का सेट है, हर एक अपने काम के लिए। एक टूटा? सिर्फ उसे बदलो।

\n\n
माइक्रोसर्विस एक छोटा, स्वायत्त एप्लिकेशन है जो एक काम करता है, लेकिन उसे बहुत अच्छे से करता है।
\n\n

JavaScript माइक्रोसर्विसेज के लिए क्यों परफेक्ट है?

\n\n
    \n
  • Event Loop: बिल्ट-इन एसिंक्रोनस सपोर्ट — I/O-bound कार्यों के लिए आदर्श
  • \n
  • NPM: 2+ मिलियन पैकेज, हर चीज के लिए तैयार इकोसिस्टम
  • \n
  • Node.js: हल्के प्रोसेस, तेज शुरुआत (50-100ms)
  • \n
  • TypeScript: टाइपिंग जो डिस्ट्रीब्यूटेड सिस्टम में बचाती है
  • \n
  • एक ही भाषा: फ्रंटएंड और बैकएंड दोनों JS में — कम कॉन्टेक्स्ट स्विचिंग
  • \n
\n\n

शुरुआत कहां से करें: प्रैक्टिकल roadmap

\n\n

स्टेप 1. जरूरी चीजें: Express + Docker

\n\n

शुरुआत में Kubernetes को भूल जाइए। आपको Node.js माइक्रोसर्विस चाहिए जो एक कमांड से चले। सबसे सरल से शुरू करते हैं — एक ग्रीटिंग सर्विस।

\n\n

पहला माइक्रोसर्विस बनाएं

\n\n
// service-greeting/index.js\nconst express = require('express');\nconst app = express();\nconst PORT = process.env.PORT || 3000;\n\napp.get('/api/hello', (req, res) => {\n  res.json({ \n    message: 'माइक्रोसर्विस से नमस्ते!',\n    timestamp: new Date().toISOString(),\n    service: 'greeting'\n  });\n});\n\napp.listen(PORT, () => {\n  console.log(`Greeting service port ${PORT} पर चल रहा है`);\n});\n
\n\n

अब इसे Docker में लपेटें:

\n\n
# Dockerfile\nFROM node:18-alpine\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci --only=production\nCOPY . .\nEXPOSE 3000\nCMD ["node", "index.js"]\n
\n\n

स्टेप 2. Docker Compose: गरीबों का ऑर्केस्ट्रेशन

\n\n

Kubernetes के पीछे मत भागिए। शुरुआत के लिए Docker Compose आपका सबसे अच्छा दोस्त है। दो सर्विसेज बनाएं और उन्हें जोड़ें।

\n\n
# docker-compose.yml\nversion: '3.8'\nservices:\n  greeting:\n    build: ./service-greeting\n    ports:\n      - "3001:3000"\n    environment:\n      - PORT=3000\n\n  users:\n    build: ./service-users\n    ports:\n      - "3002:3000"\n    environment:\n      - PORT=3000\n      - GREETING_SERVICE=http://greeting:3000\n
\n\n

स्टेप 3. सर्विसेज को जोड़ना: HTTP vs Message Broker

\n\n

JavaScript माइक्रोसर्विस आर्किटेक्चर में बातचीत के दो तरीके हैं:

\n\n
    \n
  • सिंक्रोनस (HTTP): सरल, समझने में आसान, लेकिन डिपेंडेंसी बनाता है
  • \n
  • एसिंक्रोनस (RabbitMQ/Kafka): थोड़ा जटिल, लेकिन ज्यादा भरोसेमंद
  • \n
\n\n

सर्विसेज के बीच HTTP कम्युनिकेशन का उदाहरण

\n\n
// service-users/index.js\nconst express = require('express');\nconst axios = require('axios');\nconst app = express();\n\napp.get('/api/user/:id', async (req, res) => {\n  try {\n    // दूसरे माइक्रोसर्विस को कॉल करें\n    const greeting = await axios.get(\n      `${process.env.GREETING_SERVICE}/api/hello`\n    );\n    \n    res.json({\n      userId: req.params.id,\n      greeting: greeting.data.message\n    });\n  } catch (error) {\n    res.status(500).json({ error: 'सर्विस उपलब्ध नहीं है' });\n  }\n});\n\napp.listen(3000);\n

ब्लॉग

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