gRPC क्या है? आर्किटेक्चर, स्ट्रीमिंग, और API ट्रेडऑफ
Scrapeless Universal Scraping API अनुमत सार्वजनिक वेब सामग्री पुनर्प्राप्त करता है और जब gRPC को वास्तविक उत्तर में देखा जाना चाहिए, तब JavaScript रेंडर कर सकता है।
TL;DR
- gRPC का एक सटीक प्रोटोकॉल भूमिका है। gRPC एक ओपन-सोर्स रिमोट प्रक्रिया कॉल फ्रेमवर्क है जिसमें एक क्लाइंट एक टाइप की सेवा विधि को उत्पन्न क्लाइंट और सर्वर कोड के माध्यम से दूसरे प्रोसेस पर लागू करता है।
- gRPC को सही स्तर पर पढ़ा जाना चाहिए। परिवहन, प्रतिनिधित्व, ब्राउज़र नीति, और आवेदन प्राधिकरण अलग-अलग चिंताएं बनी रहती हैं।
- मध्यस्थ यह बदल सकते हैं कि एक आवेदन क्या देखता है। गेटवे, कैश, ब्राउज़र डिफॉल्ट्स, और क्लाइंट पुस्तकालय स्रोत बाइट्स और पार्स की गई डेटा के बीच प्रोसेसिंग जोड़ सकते हैं।
- मान्यता को सामग्री के सबूत की आवश्यकता होती है। एक स्थिति या क्षेत्र अकेले यह साबित नहीं करता कि अपेक्षित सार्वजनिक प्रतिनिधित्व आया।
- सुरक्षा दायरे और मान्यता पर निर्भर करती है। प्रोटोकॉल सिंटैक्स कभी भी संसाधन तक पहुँचने या कॉलर-प्रदानित मान को विश्वसनीय बनाने का अनुमती नहीं देता।
gRPC क्या है?
gRPC एक ओपन-सोर्स रिमोट प्रक्रिया कॉल फ्रेमवर्क है जिसमें एक क्लाइंट एक टाइप की सेवा विधि को उत्पन्न क्लाइंट और सर्वर कोड के माध्यम से दूसरे प्रोसेस पर लागू करता है। एक सेवा संविदा सामान्यतः .proto फ़ाइल में लिखी जाती है, प्रोटोकॉल बफर संदेशों को एन्कोड करता है, और HTTP/2 कॉल को अंतिम बिंदुओं के बीच ले जाती है। स्थानीय-पुकार की उपस्थिति एक प्रोग्रामिंग मॉडल है; हर कॉल फिर भी लेटेंसी, आंशिक विफलता, प्राधिकरण, और संगतता चिंताओं के साथ एक नेटवर्क बाधा को पार करता है।
उपयुक्त परिभाषा तंत्र और इसके सीमा दोनों को शामिल करती है। gRPC एक एक्सचेंज के एक विशिष्ट भाग को प्रभावित करता है, जबकि आसन्न जिम्मेदारियाँ HTTP, ब्राउज़र, चुने गए परिवहन, आवेदन, या सर्वर के डेटा मॉडल के साथ बनी रहती हैं। उन स्तरों को अलग रखकर त्रुटि रिपोर्ट को पुन: उत्पादन योग्य बनाना और एक कॉन्फ़िगरेशन परिवर्तन को पहुँच नियंत्रण निर्णय के रूप में गलती से पहचानने से रोकना संभव है।
API डेवलपर्स के लिए, पहला सवाल यह है कि कौन मूल्य या व्यवहार बनाता है। अगला सवाल है कि कौन इसे व्याख्या करता है। अंतिम सवाल यह है कि क्या प्रेक्षित परिणाम यह साबित करता है कि व्याख्या सफल रही। उन तीन उत्तरों से एक शब्दावली शब्द एक परीक्षण योग्य इंटरफेस संविदा में परिवर्तित होती है।
एक gRPC कॉल नेटवर्क को कैसे पार करता है
एक सेवा परिभाषा विधियों को नामित करती है और अनुरोध और प्रतिक्रिया संदेश प्रकार असाइन करती है। प्रोटोकॉल बफर कंपाइलर और एक भाषा-विशिष्ट gRPC प्लगइन उस परिभाषा को क्लाइंट स्टब्स और सर्वर इंटरफेस में परिवर्तित करते हैं। एप्लिकेशन कोड स्टब को कॉल करता है, जबकि जनरेटेड कोड अनुरोध को सीरियलाइज़ करता है, कॉल को फ्रेम करता है, मेटाडेटा भेजता है, और प्रतिक्रिया को कॉलर की भाषा में पुनर्निर्माण करता है।
HTTP/2 gRPC को धाराओं, प्रवाह नियंत्रण, हेडर संकुचन, और दीर्घकालिक कनेक्शन के साथ एक मल्टीप्लेक्स परिवहन प्रदान करता है। कई कॉल एक कनेक्शन को साझा कर सकते हैं बिना एक HTTP/1.1 अनुरोध कतार के रूप में प्रदर्शित हुए। वह परिवहन विकल्प समानांतर सेवा ट्रैफ़िक के लिए मदद करता है, लेकिन एप्लिकेशन समयसीमा, लोड संतुलन, और क्षमता सीमाएँ अभी भी स्पष्ट डिजाइन की आवश्यकता होती है।
gRPC एकल कॉल, सर्वर-स्ट्रीमिंग कॉल, क्लाइंट-स्ट्रीमिंग कॉल, और द्विदिशीय स्ट्रीमिंग का समर्थन करता है। एकल कॉल एक पारंपरिक अनुरोध और प्रतिक्रिया से निकटता से संबंधित होते हैं। स्ट्रीमिंग विधियाँ एक या दोनों दिशाओं में एक क्रमबद्ध संदेश प्रवाह को खुला रखती हैं, जो तब उपयोगी होती है जब परिणाम क्रमिक रूप से आते हैं या दोनों साथी अद्यतन का आदान-प्रदान करने की आवश्यकता होती है।
स्थिति कोड और ट्रेलिंग मेटाडेटा कॉल के परिणामों को संप्रेषित करते हैं। एक परिवहन कनेक्शन सफल हो सकता है जबकि दूरस्थ विधि एक एप्लिकेशन-स्तर की विफलता लौटाती है, इसलिए निगरानी को gRPC स्थिति, विधि नाम, व्यतीत समय, और चयनित प्रतिक्रिया मेटाडेटा को रिकॉर्ड करना चाहिए बजाय इसके कि एक खुला HTTP/2 कनेक्शन सफलता का सबूत हो।
gRPC सेवा संविदा पढ़ना
निम्नलिखित शर्तें उन घटकों को अलग करती हैं जो अक्सर एक लेबल में समास होते हैं। इन्हें प्रतिभागियों के बीच इंटरफेस के रूप में पढ़ें बजाय इसके कि नेटवर्क ट्रेस में सजावट के रूप में।
सेवा
एक नामित संग्रह जो दूरस्थ रूप से कॉल किए जा सकने वाले विधियों का समूह है। सर्वर सेवा को लागू करता है, और क्लाइंट इसके लिए एक उत्पन्न स्टब प्राप्त करता है।
RPC विधि
एक संविदा जो एक अनुरोध प्रकार को एक प्रतिक्रिया प्रकार या स्ट्रीम आकार के साथ जोड़ती है। विधि के नाम सार्वजनिक इंटरफेस का हिस्सा बन जाते हैं।
संदेश
एक टाइप किया हुआ प्रोटोकॉल बफर रिकॉर्ड जिसे नंबरित क्षेत्रों से बनाया गया है। फील्ड नंबर, स्रोत कोड की प्रॉपर्टी क्रम नहीं, तार पर मानों की पहचान करते हैं।
मेटाडेटा
कुंजी-मूल्य जानकारी जो संदेश डेटा से पहले या बाद में भेजी जाती है। यह अक्सर प्रमाणीकरण संदर्भ, ट्रेसिंग पहचानकर्ता, और प्रतिक्रिया विवरण ले जाती है।
समयसीमा
कॉलर की सीमा कि वह कितनी देर तक प्रतीक्षा करने के लिए तैयार है। समयसीमा प्रसार डाऊनस्ट्रीम कार्य को जारी रखने से रोकती है यदि परिणाम अब उपयोगी नहीं है।
चैनल
क्लाइंट-पक्ष का अमूर्तक जो एक लक्ष्य के लिए कनेक्शन का प्रबंधन करता है। एक चैनल अनुरोध के लिए प्रति विधि एक ताजा कनेक्शन खोलने के बजाय कॉल के बीच पुन: उपयोग किया जा सकता है।
वेब डेटा संग्रह में gRPC का महत्व
gRPC यह बदल सकता है कि कौन से बाइट्स आते हैं, उन बाइट्स को कैसे व्याख्यायित किया जाता है, या क्या ब्राउज़र कोड परिणाम को देख सकता है। एक संग्रह कार्यप्रवाह को अपने उपकरणों को बदलने से पहले उस प्रभाव का पता लगाना चाहिए। अनुरोधित URL, अंतिम URL, प्रतिक्रिया स्थिति, प्रतिनिधित्व प्रकार, प्रासंगिक प्रोटोकॉल क्षेत्रों, और एक अपेक्षित सामग्री मार्कर को रिकॉर्ड करें। वह संकुचित रिकॉर्ड एक सही पृष्ठ को पहुँच संदेश, सहमति स्क्रीन, पुनर्निर्देश लक्ष्य, खाली एप्लिकेशन शेल, या असंगत एन्कोडिंग से अलग करता है।
प्रत्यक्ष HTTP सबसे सरल अधिग्रहण पथ है जब आवश्यक डेटा एक खुले सर्वर-रेन्डर किए गए उत्तर में उपलब्ध होता है। एक ब्राउज़र तब प्रासंगिक होता है जब अनुमोदित सामग्री JavaScript निष्पादन, ब्राउज़र-प्रबंधित स्थिति, नेविगेशन, या ब्राउज़र सुरक्षा नीति पर निर्भर करती है। दोनों पथों को एक समान दिखने के लिए मजबूर नहीं किया जाना चाहिए: ब्राउज़र कुकीज़, संकुचन, पुनर्निर्देश, CORS, और मंच नियमों के अनुसार संग्रह का प्रबंधन करते हैं, जबकि एक प्रत्यक्ष क्लाइंट एक अलग सेट के डिफ़ॉल्ट्स को उजागर करता है।
सत्र निरंतरता तब महत्वपूर्ण होती है जब एक प्रतिक्रिया अगले अनुरोध के लिए स्थिति स्थापित करती है। एक अधिकृत अनुक्रम को एक सीमित क्लाइंट संदर्भ के अंदर रखें, आवश्यक स्थानीयता और नेटवर्क मूल को बनाए रखें, और असंबंधित कार्यों से स्थिति को मिश्रित करने से बचें। एक प्रॉक्सी नेटवर्क मूल को बदलती है; यह हेडर को फिर से उत्पन्न नहीं करती, प्रतिनिधित्व को डिकोड नहीं करती, स्क्रिप्ट को निष्पादित नहीं करती, या प्रतिबंधित सामग्री तक पहुँच प्रदान नहीं करती।
विश्लेषण केवल प्रतिनिधित्व सत्यापन के बाद शुरू होता है। फ़ील्ड निकालने से पहले अंतिम होस्ट को पुष्टि करें, जहां उपलब्ध हो, वैध पहचान, मीडिया प्रकार, डिकोडिंग स्थिति, और आवश्यक व्यवसाय मार्कर की पुष्टि करें। यह क्रम एक पार्सर को एक त्रुटि दस्तावेज़ को खाली रिकॉर्ड में परिवर्तित करने से रोकता है जो तकनीकी रूप से सफल प्रतीत होते हैं।
मध्यस्थों के प्रति स्पष्ट ध्यान आवश्यक है। एक सामग्री वितरण नेटवर्क एक एन्कोडेड वैरिएंट का चयन कर सकता है, एक गेटवे OPTIONS का उत्तर दे सकता है, एक कैश एक सहमति की गई प्रतिक्रिया का पुन: उपयोग कर सकता है, और एक अनुप्रयोग सर्वर कुकीज़ या प्रमाणीकरण फ़ील्ड सेट कर सकता है। केवल एप्लीकेशन कोड की तुलना अंतिम पृष्ठ के आउटपुट के साथ उस स्तर को छोड़ देती है जिसने निर्णय लिया हो।
स्क्रैपलेस यूनिवर्सल स्क्रैपिंग एपीआई तब महत्वपूर्ण होती है जब एक टीम को अनुमत सार्वजनिक सामग्री, जिसमें जावास्क्रिप्ट- rendere पृष्ठ शामिल हैं, का प्रबंधित पुनर्प्राप्ति की आवश्यकता होती है। अधिग्रहण अनुबंध को अभी भी लक्ष्य, अनुमति दिए गए फ़ील्ड, अपेक्षित प्रतिनिधित्व, स्वीकृति मार्कर, और रोकने की स्थिति को परिभाषित करना चाहिए। उत्पाद की क्षमता स्रोत की शर्तें, गोपनीयता समीक्षा, या अनुप्रयोग स्तर की सत्यापन को प्रतिस्थापित नहीं करती है।
gRPC कहाँ अच्छा बैठता है
gRPC एक आर्किटेक्चर में एक ठोस उत्पाद व्यवहार, संगतता आवश्यकता, या निदान निर्णय को बदलने पर एक स्थान अर्जित करता है। ये उपयोग के मामले पहले नौकरी का वर्णन करते हैं और प्रोटोकॉल की विशेषता दूसरे।
आंतरिक सेवा कॉल
टीम विभिन्न कार्यान्वयन भाषाओं के लिए एक स्कीमा साझा कर सकती हैं और लगातार क्लाइंट उत्पन्न कर सकती हैं।
इंक्रेमेंटल परिणाम वितरण
सर्वर स्ट्रीमिंग रिकॉर्ड को तब भेज सकती है जब वे उपलब्ध हो जाते हैं, एक बड़े अंतिम शरीर की प्रतीक्षा करने के बजाय।
टेलीमेट्री और नियंत्रण विमान
बायडायरेक्शनल स्ट्रीम लगातार स्थिति परिवर्तनों को ले जा सकती हैं जबकि एक स्पष्ट टाइपेड अनुबंध को बनाए रखती हैं।
मोबाइल-से-बैकएंड कॉल
संक्षिप्त संदेशों द्वारा प्रेषित बाइट्स को कम किया जा सकता है, बशर्ते कि क्लाइंट प्लेटफ़ॉर्म और गेटवे रणनीति की योजना बनाई गई हो।
पॉलीग्लॉट सिस्टम
एक .proto अनुबंध gRPC टूलचेन द्वारा समर्थित भाषाओं के बीच हस्तलिखित अनुवाद को कम कर सकता है।
कड़ी API विकास
संख्यात्मक संदेश फ़ील्ड और संगतता नियम टीमों को बिना पुराने को फिर से व्याख्या किए फ़ील्ड जोड़ने का एक अनुशासित तरीका देते हैं।
gRPC की तुलना JSON और REST-शैली HTTP एपीआई के साथ
gRPC सबसे मजबूत होता है जब दोनों तरफ एक स्कीमा साझा किया जा सकता है और सहायक कोड जनरेटर का उपयोग किया जा सकता है। एक JSON-ओवर-HTTP एपीआई को सामान्य ब्राउज़र और कमांड-लाइन उपकरणों के साथ निरीक्षण करना आसान है, और यह सार्वजनिक एकीकरणों में उपभोक्ताओं के लिए ढीली युग्मन को महत्व देता है। चयन एक अनुबंध और पारिस्थितिकी तंत्र निर्णय है, कोई सार्वभौमिक गति रैंकिंग नहीं।
| आयाम | gRPC | संबंधित अवधारणा या वैकल्पिक |
|---|---|---|
| अनुबंध | टाइप की गई सेवा और संदेश स्कीमा | संसाधन पथ और मीडिया-प्रकार स्कीमा |
| तार प्रारूप | आमतौर पर प्रोटोकॉल बफ़र्स | अक्सर JSON, लेकिन HTTP अन्य प्रारूपों की अनुमति देता है |
| स्ट्रीमिंग | विधि आकार में निर्मित | कई अलग HTTP तंत्रों के माध्यम से संभव |
| ब्राउज़र एक्सेस | आमतौर पर एक गेटवे या ब्राउज़र-उन्मुख क्लाइंट की आवश्यकता होती है | साधारण HTTP एंडपॉइंट के लिए मौलिक फेच समर्थन |
| डिबगिंग | gRPC-जानकारी वाले टूलिंग और विवेक के साथ सर्वोत्तम जहां सक्षम हो | सामान्य HTTP टूलिंग के साथ पठनीय |
एक तुलना केवल तभी उपयोगी है जब यह स्तर की सीमाओं को बनाए रखती है। दो तंत्र एक अनुरोध में सह-अस्तित्व में हो सकते हैं, और एक को प्रतिस्थापित करना स्वचालित रूप से दूसरे को प्रतिस्थापित नहीं करता है। चुने हुए व्यवहार का दस्तावेज इनपुट, पर्यवेक्षणीय आउटपुट, विफलता स्थिति, और स्वामित्व की शर्तों में करें।
सामान्य gRPC डिज़ाइन गलतियाँ
- एक दूरस्थ कॉल को स्थानीय के रूप में मानना। दूरस्थ कार्य टाइम आउट, रद्द किए जा सकते हैं, या कॉलर के इंतज़ार करना बंद करने के बाद पूरा हो सकते हैं। विधि नामों को महंगा या स्थिति-परिवर्तन करने वाले व्यवहार को छिपाना नहीं चाहिए।
- डेडलाइंस की अनदेखी। एक अनुपस्थित डेडलाइन काम को इसके व्यवसाय मूल्य खत्म होने के बाद कतार में रख सकती है। वास्तविक सीमाएँ निर्धारित करें और उन्हें डाउनस्ट्रीम कॉल के माध्यम से प्रचारित करें।
- क्षेत्र संख्या बदलना। A renamed field can keep its number, but reusing a removed number can make old and new messages disagree. Reserve removed identifiers in the schema.
- डिफ़ॉल्ट रूप से स्ट्रीमिंग का चयन करना। एक स्ट्रीम अपने जीवनकाल के लिए कनेक्शन और अनुप्रयोग संसाधनों का उपभोग करता है। उत्पाद के व्यवहार को बदलने वाले जब अनुपातात्मक विनिमय होते हैं, तो स्ट्रीमिंग का उपयोग करें।
- ब्राउज़र संगतता मान लेते हुए। साधारण ब्राउज़र फ़ेच कोड सभी gRPC परिवहन व्यवहार को उजागर नहीं करता है। जब ब्राउज़र क्लाइंट होते हैं तो gRPC-Web या HTTP गेटवे की योजना बनाएं।
- संदेश निकायों को अनियंत्रित रूप से लॉग करना। टाइप की गई सामग्री में प्रमाणीकरण या व्यक्तिगत डेटा हो सकता है। संचालनिक लॉग में विधि, स्थिति, समय, और अनुमोदित पहचानकर्ताओं को प्राथमिकता दें।
अधिकांश विफलताएँ स्वचालित रूप से पुस्तकालय या ब्राउज़र द्वारा किए गए कार्यों के बारे में धारणाओं को हटाने के बादdiagnose करने के लिए आसान हो जाती हैं। एक न्यूनतम ट्रेस कैप्चर करें, रहस्यों को हटाएं, और एक नियंत्रित चर को एक समय में बदलें। लक्ष्य लौटाई गई प्रतिनिधित्व की एक स्थिर व्याख्या है, न कि असंबंधित हेडर ट्वीक का एक संग्रह।
एक व्यावहारिक gRPC मूल्यांकन चेकलिस्ट
यह अनुक्रम लॉन्च से पहले के डिजाइन समीक्षाओं के रूप में और व्यवहार में बदलाव के बाद उत्पादन निदान के रूप में काम करता है। यह प्रोटोकॉल सबूत को अनुप्रयोग परिणाम से जोड़ता है।
- फ्रेमवर्क रैपर चुनने से पहले सेवा अनुबंध लिखें, और समीक्षा करें कि क्या प्रत्येक विधि युनी या वास्तव में स्ट्रीम की आवश्यकता है।
- प्रत्येक कॉलर भाषा और रनटाइम की सूची बनाएं, फिर हर एक के लिए आधिकारिक समर्थन और कोड-जनरेशन स्वामित्व की पुष्टि करें।
- API अनुबंध के रूप में डेडलाइन, रद्दीकरण व्यवहार, अधिकतम संदेश अपेक्षाएँ, और स्थिति मैपिंग को परिभाषित करें।
- एक पुराने क्लाइंट और एक नए सर्वर के साथ स्कीमा विकास का परीक्षण करें, फिर संगतता धारणाओं को उजागर करने के लिए जोड़ी को उलट दें।
- निर्णय लें कि ब्राउज़र, बाहरी भागीदार, और निदान उपकरण सेवा तक कैसे पहुँचेंगे; केवल उसी स्थान पर गेटवे जोड़ें जहाँ वह सीमा वास्तविक हो।
- प्रतिनिधि समांतरता के तहत एंड-टू-एंड कॉल व्यवहार मापें, जिसमें डाउनस्ट्रीम समय और अनुक्रमण लागत शामिल है।
- यह दस्तावेज़ करें कि कौन-कौन से मेटाडेटा कुंजी की अनुमति है और ट्रेस और लॉग में रहस्यों या अनियंत्रित उपयोगकर्ता इनपुट को प्रवेश करने से रोकें।
समीक्षा समाप्त करें एक छोटा स्वीकृत नमूना और एक अस्वीकृत नमूना सहेजकर एक ही हटाने के नियमों के साथ। भविष्य में बदलाव ज्ञात पृष्ठ पहचान, अपेक्षित फ़ील्ड, और डिकोडेड सामग्री के खिलाफ तुलना की जा सकती है बजाय कि केवल मेमोरी या स्क्रीनशॉट।
सुरक्षा, मेटाडेटा, और अवलोकनीयता
परिवहन सुरक्षा बितड़ी गई बाइट्स की सुरक्षा करती है, लेकिन यह यह तय नहीं करती है कि कौन सा कॉलर एक विधि को बुला सकता है। सहयोगी की पहचान करें, अनुरोधित संचालन को अधिकृत करें, और सेवा सीमा पर हर संदेश को मान्य करें। उत्पन्न प्रकार कई आकार त्रुटियों को रोकते हैं; वे व्यावसायिक मान्यता को प्रतिस्थापित नहीं करते।
मेटाडेटा को किसी अन्य प्रोटोकॉल में हेडर के समान समीक्षा की आवश्यकता है। प्रमाणीकरण मानों को प्लेटफ़ॉर्म के अनुमोदित प्रमाण-पत्र पथ का उपयोग करना चाहिए, और ट्रेसिंग मानों को सीमाबद्ध होना चाहिए। एक सर्वर यह मानने में असमर्थ नहीं होना चाहिए कि मेटाडेटा विश्वसनीय है केवल इसलिए कि एक क्लाइंट पुस्तकालय ने अनुरोध उत्पन्न किया।
उपयोगी gRPC टेलेमेट्री कनेक्शन स्वास्थ्य को विधि स्वास्थ्य से अलग करता है। विधि-स्तरीय विलंबता, स्थिति, रद्दीकरण, डेडलाइन समाप्ति, और प्रतिक्रिया-आकार बैंड रिकॉर्ड करें। यह एक धीमी निर्भरता को बिना संवेदनशील संदेश निकायों को कैप्चर किए दिखाता है।
gRPC को परिभाषित करने वाले मानक
आधिकारिक gRPC परिचय सेवाएँ, उत्पन्न स्टब्स, और प्रोटोकॉल बफ़र्स परिभाषित करता है। यह प्राथमिक स्रोत इस लेख में उपयोग की जाने वाली शब्दावली और सीमा को ठीक करता है, जबकि कार्यान्वयन व्यवहार अभी भी चयनित क्लाइंट और तैनाती में देखा जाना चाहिए।
gRPC कोर अवधारणाएँ गाइड युनी और स्ट्रीमिंग विधि आकारों का विवरण देती है। यह प्राथमिक स्रोत इस लेख में उपयोग की जाने वाली शब्दावली और सीमा को ठीक करता है, जबकि कार्यान्वयन व्यवहार अभी भी चयनित क्लाइंट और तैनाती में देखा जाना चाहिए।
HTTP/2 विनिर्देश gRPC द्वारा उपयोग किए जाने वाले मल्टीप्लेक्स परिवहन को परिभाषित करता है। यह प्राथमिक स्रोत इस लेख में उपयोग की जाने वाली शब्दावली और सीमा को ठीक करता है, जबकि कार्यान्वयन व्यवहार अभी भी चयनित क्लाइंट और तैनाती में देखा जाना चाहिए।
प्रोटोकॉल बफ़र्स अवलोकन स्कीमा भाषा और बाइनरी संदेश प्रारूप की व्याख्या करता है। यह प्राथमिक स्रोत इस लेख में उपयोग की जाने वाली शब्दावली और सीमा को ठीक करता है, जबकि कार्यान्वयन व्यवहार अभी भी चयनित क्लाइंट और तैनाती में देखा जाना चाहिए।
gRPC निर्णय एक वाक्य में
जब एक टाइप की गई साझा अनुबंध, उत्पन्न ग्राहक, और पहले श्रेणी की स्ट्रीमिंग ठोस सेवा-से-सेवा समस्याओं को हल करती है, तो gRPC चुनें; जब खुले निरीक्षण और विस्तृत ग्राहक पहुंच अधिक महत्वपूर्ण होती है, तो एक सरल HTTP प्रतिनिधित्व चुनें।
उस नियम को एक स्वीकृति परीक्षण में डालें। बताएं कि कौन सा प्रतिभागी सिग्नल भेजता है, कौन सा प्रतिभागी इसे व्याख्या करता है, कौन से मध्यस्थ पथ को बदल सकते हैं, और कौन सा सामग्री मार्कर सफलता को साबित करता है। यह gRPC को एक अवलोकनीय प्रणाली का हिस्सा बनाता है न कि विफलता के बाद एक लेबल।
क्या आप सार्वजनिक वेब प्रतिक्रिया को मान्य करने के लिए तैयार हैं?
अनुमोदित सार्वजनिक सामग्री प्राप्त करने और इस गाइड में वर्णित प्रतिनिधित्व अनुबंध की जांच करने के लिए Scrapeless Universal Scraping API का उपयोग करें।
आज साइन अप करें और पाएं $5 में नि: शुल्क क्रेडिट — कोई क्रेडिट कार्ड की आवश्यकता नहीं.
आपका $5 क्रेडिट प्राप्त करें →पूछताछ
क्या gRPC और प्रोटोकॉल बफ़र्स एक जैसे हैं?
नहीं। gRPC RPC ढांचा और कॉल मॉडल है, जबकि प्रोटोकॉल बफ़र्स सामान्यत: इसका इंटरफ़ेस परिभाषा और संदेश एनकोडिंग प्रदान करते हैं। HTTP/2 परिवहन, स्थिति प्रबंधन, डेडलाइन, और उत्पन्न सेवा कोड जैसे अन्य मुद्दे gRPC से संबंधित होते हैं न कि केवल Serialization format से।
क्या gRPC हमेशा HTTP/2 का उपयोग करता है?
मुख्यधारा gRPC कार्यान्वयन अपने परिवहन के लिए HTTP/2 semantics का उपयोग करते हैं। ब्राउज़र-फेसिंग प्रकार और गेटवे विभिन्न किनारों को उजागर कर सकते हैं, इसलिए वास्तुकला आरेखों को मूल gRPC हॉप को किसी भी अनुवादित HTTP इंटरफेस से अलग करना चाहिए।
क्या एक ब्राउज़र gRPC सेवा को सीधे कॉल कर सकता है?
एक ब्राउज़र आमतौर पर gRPC-Web समर्थन या एक HTTP गेटवे की आवश्यकता होती है क्योंकि साधारण ब्राउज़र नेटवर्किंग API पूर्ण मूल gRPC परिवहन को उजागर नहीं करते हैं। गेटवे सार्वजनिक अनुबंध का एक भाग बन जाता है और इसे अलग से मॉनिटर किया जाना चाहिए।
क्या gRPC हमेशा HTTP पर JSON की तुलना में तेज होता है?
नहीं। पेलोड आकार और अनुक्रमण gRPC को प्राथमिकता दे सकते हैं, लेकिन एंड-टू-एंड प्रदर्शन सेवा कार्य, नेटवर्क स्थितियों, कनेक्शन पुन: उपयोग, संदेश आकार और ग्राहक कार्यान्वयन पर भी निर्भर करता है। एक सामान्य दावा करने से पहले वास्तविक कार्यप्रवाह को मापें।
gRPC APIs को कैसे विकसित होना चाहिए?
gRPC APIs को संगत फ़ील्ड जोड़ने चाहिए, मौजूदा फ़ील्ड नंबरों को बनाए रखना चाहिए, हटाए गए पहचानकर्ताओं को आरक्षित करना चाहिए, और पुराने और नए क्लाइंट-सरवर जोड़ियों का परीक्षण करना चाहिए। विधि व्यवहार और स्थिति अर्थशास्त्र को .proto फ़ाइल के साथ संगतता समीक्षा की आवश्यकता है।