API7 Enterprise का उपयोग करके gRPC सेवाओं को प्रॉक्सी कैसे करें?

January 2, 2024

Products

आज के तेजी से विकसित हो रहे तकनीकी परिदृश्य में, gRPC (Google Remote Procedure Call) कई एप्लिकेशन्स में एक अनिवार्य घटक बन गया है। हालांकि, gRPC की पूरी क्षमता का उपयोग करने के लिए, एक मजबूत API गेटवे gRPC सेवाओं के प्रभावी प्रबंधन के लिए आवश्यक है, जो प्रोटोकॉल रूपांतरण, लोड बैलेंसिंग, प्रमाणीकरण और अधिकृतिकरण जैसी महत्वपूर्ण कार्यक्षमताएं प्रदान करता है।

चाहे आप gRPC से परिचित हों या नहीं, इस लेख को 5 मिनट में पढ़कर आप API7 Enterprise का उपयोग करके gRPC सेवाओं को प्रॉक्सी करने का ज्ञान प्राप्त कर सकते हैं।

API7 Enterprise और gRPC

आवश्यकताएँ

  1. API7 Enterprise इंस्टॉल करें।

  2. grpcurl इंस्टॉल करें ताकि आप gRPC सर्वर के साथ gRPC क्लाइंट इंटरैक्शन का सिमुलेशन कर सकें।

  3. टेस्ट के लिए एक gRPC सेवा शुरू करें:

    • API7.ai टेस्टिंग के लिए एक gRPC सेवा उदाहरण प्रदान करता है। वैकल्पिक रूप से, आप इसे निम्नलिखित डॉकर कमांड का उपयोग करके चला सकते हैं:
    docker run -d --name grpc-service -p 50051:50051 --restart always api7/grpc-server-example:1.0.0
    • एक बार शुरू होने के बाद, grpcurl का उपयोग करके उपलब्ध gRPC सेवा सूची और मेथड्स देखें:
    $ grpcurl -plaintext 127.0.0.1:50051 list grpc.reflection.v1alpha.ServerReflection helloworld.Greeter helloworld.TestImport $ grpcurl -plaintext 127.0.0.1:50051 list helloworld.Greeter helloworld.Greeter.GetErrResp helloworld.Greeter.Plus helloworld.Greeter.SayHello helloworld.Greeter.SayHelloAfterDelay helloworld.Greeter.SayHelloBidirectionalStream helloworld.Greeter.SayHelloClientStream helloworld.Greeter.SayHelloServerStream

API7 Enterprise का उपयोग करके gRPC सेवाओं को प्रॉक्सी करना

गेटवे इंस्टेंस कॉन्फ़िगरेशन अपडेट करें

डिफ़ॉल्ट रूप से, API7 Enterprise इंस्टेंस केवल पोर्ट 9443 पर TLS-एन्क्रिप्टेड HTTP/2 का समर्थन करता है। टेस्टिंग की सुविधा के लिए, गेटवे इंस्टेंस कॉन्फ़िगरेशन फ़ाइल में node_listen सेक्शन को संशोधित करें, और पोर्ट 9081 जोड़ें ताकि गैर-एन्क्रिप्टेड HTTP/2 का समर्थन किया जा सके।

apisix: node_listen: - port: 9080 enable_http2: false - port: 9081 enable_http2: true

परिवर्तन करने के बाद, API7 Enterprise इंस्टॉल किए गए api7-ee डायरेक्टरी में docker-compose up -d को फिर से चलाएं।

सेवाएं और रूट कॉन्फ़िगर करें

अगला, API7 Enterprise के डैशबोर्ड पर, तैयार की गई gRPC सेवा को प्रॉक्सी करने के लिए संबंधित संसाधनों को कॉन्फ़िगर करें।

  1. grpc-example नामक एक सेवा जोड़ें और अपस्ट्रीम स्कीम के रूप में gRPC चुनें।

API7 का उपयोग करके grpc-1 को प्रॉक्सी करें

  1. grpc-example सेवा के भीतर एक रूट जोड़ें

    • रूट पाथ फॉर्मेट: /{service}/{method}
    • उदाहरण के लिए, पहले से क्वेरी की गई gRPC सेवा सूची और मेथड्स के आधार पर, पाथ को /helloworld.Greeter/SayHello के रूप में कॉन्फ़िगर करें।

API7 का उपयोग करके grpc-2 को प्रॉक्सी करें

टेस्टिंग के लिए सेवाएं प्रकाशित करें

सेवा और रूट बनाने के बाद, सेवा को गेटवे ग्रुप में प्रकाशित करें ताकि यह प्रभावी हो सके।

  1. "Publish Service" पर क्लिक करें, निर्दिष्ट गेटवे ग्रुप का चयन करें और प्रकाशित करने के लिए सेवा चुनें।

  2. एक gRPC सेवा नोड (IP + पोर्ट) जोड़ें, फिर "Publish" पर क्लिक करें।

  3. grpcurl का उपयोग करके gRPC सेवा का टेस्ट करें:

    • helloworld.proto फ़ाइल का उपयोग करें ताकि grpcurl अनुरोध और प्रतिक्रिया प्रारूप को gRPC सेवा परिभाषा के साथ संरेखित कर सके। इस उदाहरण के लिए .proto फ़ाइल यहाँ पाई जा सकती है।
    • निम्नलिखित कमांड चलाएं ताकि API7 Enterprise का उपयोग करके gRPC सेवा के सफल प्रॉक्सी को देख सकें।
    $ grpcurl -plaintext -proto helloworld.proto -d '{"name":"apisix"}' 127.0.0.1:9081 helloworld.Greeter.SayHello { "message": "Hello apisix" }

निष्कर्ष

API7 Enterprise में 100+ बिल्ट-इन प्लगइन्स हैं, जो प्रमाणीकरण, अधिकृतिकरण, दर सीमित करना, लॉगिंग और मॉनिटरिंग जैसी विस्तृत कार्यक्षमताओं को कवर करते हैं। API7 Enterprise का उपयोग करके gRPC सेवाओं को प्रॉक्सी करने से सिस्टम की लचीलापन, सुरक्षा, प्रदर्शन और प्रबंधनीयता में काफी सुधार होता है, जो डेवलपर्स और ऑपरेशन टीम्स को शक्तिशाली उपकरण और नियंत्रण तंत्र प्रदान करता है। API7 Enterprise को आज़माएं और अपने gRPC एप्लिकेशन को सशक्त बनाएं!

Tags: