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

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

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

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

परिचय: PHP और माइक्रोसर्विसेज़ क्यों?

लंबे समय तक, PHP केवल मोनोलिथिक अनुप्रयोगों - WordPress, Laravel या Symfony से जुड़ा था। हालाँकि, आधुनिक PHP (संस्करण 7.4 और विशेष रूप से 8.x से शुरू) माइक्रोसर्विस आर्किटेक्चर बनाने के लिए एक शक्तिशाली उपकरण में बदल गया है। बेहतर प्रदर्शन, सख्त टाइपिंग, एसिंक्रोनस क्षमताओं (ReactPHP या Swoole के माध्यम से) और परिपक्व पारिस्थितिकी तंत्र के कारण, PHP माइक्रोसर्विसेज़ के लिए एक पूर्ण भाषा बन गई है।

इस लेख में, हम चर्चा करेंगे: PHP पर माइक्रोसर्विसेज़ क्या हैं, आर्किटेक्चर कैसे डिज़ाइन करें, किन तकनीकों का उपयोग करें, और वास्तविक कोड उदाहरण लिखेंगे।



माइक्रोसर्विस आर्किटेक्चर क्या है?

माइक्रोसर्विसेज़ एक दृष्टिकोण है जिसमें एप्लिकेशन को छोटी, स्वतंत्र रूप से तैनात की जाने वाली सेवाओं में विभाजित किया जाता है। प्रत्येक सेवा अपने व्यावसायिक कार्य के लिए जिम्मेदार होती है और नेटवर्क (HTTP/REST, gRPC, मैसेज क्यू) के माध्यम से दूसरों के साथ संवाद करती है।



PHP पर माइक्रोसर्विसेज़ के प्रमुख सिद्धांत

  • स्वतंत्रता — प्रत्येक सेवा PHP, Node.js या Go में लिखी जा सकती है, लेकिन हम सभी के लिए PHP का उपयोग करते हैं।
  • डेटा का विकेंद्रीकरण — प्रत्येक डेटाबेस केवल एक सेवा से संबंधित होता है।
  • ऑर्केस्ट्रेशन बनाम कोरियोग्राफी — केंद्रीय प्रबंधन (Kubernetes) और इवेंट-संचालित दृष्टिकोण के बीच चयन।
  • फॉल्ट टॉलरेंस — एक विफल सेवा को पूरे सिस्टम को नहीं तोड़ना चाहिए।


PHP पर माइक्रोसर्विसेज़ का आर्किटेक्चर: सिद्धांत से अभ्यास तक

एक सामान्य प्रोजेक्ट पर विचार करें: एक ऑनलाइन स्टोर। इसे माइक्रोसर्विसेज़ में विभाजित करें:

  • User Service — पंजीकरण, प्रमाणीकरण, प्रोफाइल।
  • Product Service — उत्पाद सूची, मूल्य, स्टॉक।
  • Order Service — ऑर्डर बनाना, स्थितियाँ।
  • Payment Service — भुगतान प्रसंस्करण।
  • Notification Service — ईमेल/SMS सूचनाएँ।


चरण 1: API Gateway डिज़ाइन करना

API Gateway — एकल प्रवेश बिंदु। PHP पर इसे Slim Framework या Nginx + PHP-FPM का उपयोग करके कार्यान्वित किया जा सकता है। Slim 4 पर एक सरल gateway का उदाहरण:



<?php// api-gateway/public/index.phpuse Slim\\Factory\\AppFactory;use Psr\\Http\\Message\\ServerRequestInterface as Request;use Psr\\Http\\Message\\ResponseInterface as Response;

require __DIR__ . '/../vendor/autoload.php';

$app = AppFactory::create();

// माइक्रोसर्विसेज़ के लिए रूटिंग$app->post('/api/orders', function (Request $request, Response $response) { // अनुरोध को Order Service पर रीडायरेक्ट करें $client = new GuzzleHttp\\Client(['base_uri' => 'http://order-service:8080']); $res = $client->post('/orders', [ 'json' => $request->getParsedBody() ]); $response->getBody()->write($res->getBody()); return $response->withStatus($res->getStatusCode());});

$app->run();


चरण 2: सिंक्रोनस इंटरेक्शन (REST)

सबसे सरल तरीका — सेवाओं के बीच HTTP अनुरोध। Guzzle या Symfony HttpClient का उपयोग करें। Product Service का उदाहरण:



<?php// product-service/src/Controller/ProductController.phpnamespace App\\Controller;

use Symfony\\Component\\HttpFoundation\\JsonResponse;use Symfony\\Component\\HttpFoundation\\Request;

class ProductController{ public function getProduct(int $id): JsonResponse { // DB से उत्पाद प्राप्त करने का तर्क $product = $this->productRepository->find($id); if (!$product) { return new JsonResponse(['error' => 'Product not found'], 404); } return new JsonResponse([ 'id' => $product->getId(), 'name' => $product->getName(), 'price' => $product->getPrice() ]); }}


चरण 3: एसिंक्रोनस

ब्लॉग

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