आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
समस्या का ब्यौरा
क्लाइंट ऐप्लिकेशन को गड़बड़ी कोड के साथ 502 Bad Gateway
का एक एचटीटीपी स्टेटस कोड मिलता है
protocol.http.TooBigBody
का इस्तेमाल, एपीआई कॉल के रिस्पॉन्स के तौर पर किया जाता है.
गड़बड़ी का मैसेज
क्लाइंट ऐप्लिकेशन को यह रिस्पॉन्स कोड मिलता है:
HTTP/1.1 502 Bad Gateway
इसके अलावा, आपको गड़बड़ी का यह मैसेज भी दिख सकता है:
{ "fault":{ "faultstring":"Body buffer overflow", "detail":{ "errorcode":"protocol.http.TooBigBody" } } }
संभावित कारण
गड़बड़ी का यह मैसेज तब दिखता है, जब टारगेट/बैकएंड सर्वर से Apigee Edge को पेलोड साइज़ भेजा जाता है कुल एचटीटीपी रिस्पॉन्स, Apigee Edge में तय सीमा से ज़्यादा है.
गड़बड़ी की ये वजहें हो सकती हैं:
वजह | ब्यौरा | इसके लिए लागू होने वाले, समस्या हल करने के निर्देश |
---|---|---|
रिस्पॉन्स पेलोड का साइज़, तय सीमा से ज़्यादा है | Apigee को एचटीटीपी रिस्पॉन्स के हिस्से के तौर पर टारगेट/बैकएंड सर्वर से भेजा गया पेलोड साइज़ यह है यह Apigee में दी गई सीमा से ज़्यादा है. | Edge के सार्वजनिक और प्राइवेट क्लाउड उपयोगकर्ता |
इसके बाद जवाब के पेलोड का साइज़, तय सीमा से ज़्यादा हो गया है डीकंप्रेशन | पेलोड का साइज़, एचटीटीपी के हिस्से के तौर पर टारगेट/बैकएंड सर्वर की ओर से कंप्रेस किए गए फ़ॉर्मैट में भेजा जाता है Apigee से कंप्रेस किए जाने पर, Apigee के लिए रिस्पॉन्स की संख्या, तय सीमा से ज़्यादा होती है. | Edge के सार्वजनिक और प्राइवेट क्लाउड उपयोगकर्ता |
गड़बड़ी की जांच करने के सामान्य तरीके
इस गड़बड़ी का पता लगाने के लिए, इनमें से किसी एक टूल/तकनीक का इस्तेमाल करें:
एपीआई मॉनिटरिंग
एपीआई मॉनिटरिंग का इस्तेमाल करके, गड़बड़ी का पता लगाने के लिए:
- वाले उपयोगकर्ता के तौर पर, Apigee Edge के यूज़र इंटरफ़ेस (यूआई) में साइन इन करें भूमिका होनी चाहिए.
उस संगठन पर जाएं जिसमें आपको समस्या की जांच करनी है.
- विश्लेषण > एपीआई मॉनिटरिंग > पेज की जांच करें.
- वह समयावधि चुनें जिसमें आपको गड़बड़ियां दिखी थीं.
- गड़बड़ी वाले कोड को सटीक बनाने के लिए, प्रॉक्सी फ़िल्टर को चुना जा सकता है.
- समय के हिसाब से गड़बड़ी कोड दिखाएं.
वह सेल चुनें जिसमें गड़बड़ी कोड
protocol.http.TooBigBody
है नीचे दिखाया गया है:आपको गड़बड़ी के कोड के बारे में जानकारी दिखेगी
protocol.http.TooBigBody
जैसा कि नीचे दिखाया गया है:लॉग देखें पर क्लिक करें और फ़ेल हो चुके अनुरोध की पंक्ति को बड़ा करें.
- लॉग विंडो में जाकर, नीचे दी गई जानकारी देखें:
- स्टेटस कोड:
502
- गलत सोर्स:
target
- गलत कोड:
protocol.http.TooBigBody
.
- स्टेटस कोड:
- अगर गलत सोर्स की वैल्यू
target
और गलत कोड है का मानprotocol.http.TooBigBody
है, तो इसका मतलब है कि एचटीटीपी टारगेट/ बैकएंड सर्वर से मिले रिस्पॉन्स का पेलोड साइज़ Apigee Edge में सीमा तय करने की अनुमति है.
ट्रेस
ट्रेस टूल का इस्तेमाल करके गड़बड़ी का पता लगाने के लिए:
- ट्रेस सेशन चालू करें और इनमें से कोई एक काम करें:
502 Bad Gateway
गड़बड़ी आने तक इंतज़ार करें, या- अगर आपको समस्या के बारे में अच्छे से पता है, तो एपीआई कॉल करें और समस्या को हल करें
502 Bad Gateway
गड़बड़ी.
- पूरे न हो पाने वाले अनुरोधों में से किसी एक को चुनें और ट्रेस की जांच करें.
- ट्रेस के अलग-अलग फ़ेज़ पर जाएं और देखें कि गड़बड़ी कहां हुई.
टारगेट से मिले जवाब के ठीक बाद वाले चरण गड़बड़ी पर जाएं सर्वर फ़ेज़ की जानकारी नीचे दी गई है:
ट्रेस में दी गई गड़बड़ी की वैल्यू नोट करें:
- गड़बड़ी:
Body buffer overflow
- error.class:
com.apigee.errors.http.server.BadGateway
इससे पता चलता है कि Apigee Edge (मैसेज प्रोसेसर कॉम्पोनेंट) जितनी जल्दी हो सके, गड़बड़ी की सूचना देता है इसे बैकएंड सर्वर से रिस्पॉन्स मिलता है, क्योंकि पेलोड का साइज़ तय सीमा से ज़्यादा है सीमा तय करें.
- गड़बड़ी:
क्लाइंट को जवाब भेजा गया चरण में आपको गड़बड़ी का मैसेज दिखेगा, जैसा कि यहां दिखाया गया है:
- ट्रेस में जाकर गड़बड़ी की वैल्यू नोट करें. ऊपर दिया गया सैंपल ट्रेस दिखाता है:
- गड़बड़ी:
502 Bad Gateway
- गड़बड़ी का कॉन्टेंट:
{"fault":{"faultstring":"Body buffer overflow","detail":{"errorcode":"protocol.http.TooBigBody"}}}
- गड़बड़ी:
अलग-अलग स्थितियों के लिए, टारगेट सर्वर से मिला जवाब चरण पर जाएं. इसका तरीका नीचे बताया गया है:
असंपीडित
स्थिति #1: रिस्पॉन्स पेलोड, कंप्रेस किए गए फ़ॉर्म में भेजा गया है
ट्रेस में दी गई गड़बड़ी की वैल्यू नोट करें:
- टारगेट सर्वर से जवाब मिला:
200 OK
- कॉन्टेंट की लंबाई (रिस्पॉन्स हेडर सेक्शन से): ~11 एमबी
संपीडित
स्थिति #2: कंप्रेस किए गए फ़ॉर्म में पेलोड का अनुरोध करें
ट्रेस में दी गई गड़बड़ी की वैल्यू नोट करें:
- टारगेट सर्वर से जवाब मिला:
200 OK
- Content-Encoding: अगर आपको Content-Encoding में यह हेडर दिखता है
सेक्शन में, वैल्यू नोट करें. उदाहरण के लिए, इस उदाहरण में मान है
gzip
.
- टारगेट सर्वर से जवाब मिला:
जवाब का कॉन्टेंट सेक्शन में, मुख्य हिस्से पर ध्यान दें:
{"fault":{"faultstring":"Body buffer overflow","detail":{"errorcode":"protocol.http.TooBigBody"}}}
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैट्रेस में AX (Analytics डेटा रिकॉर्ड किया गया) चरण पर जाएं और उस पर क्लिक करें पर जाएं.
- चरण की जानकारी में नीचे की ओर स्क्रोल करके, वैरिएबल पढ़ें सेक्शन में जाएं और
target.received.content.length
की वैल्यू हैं, जो यह दिखाती हैं:- रिस्पॉन्स पेलोड का असल साइज़, जब उसे बिना कंप्रेस किए गए फ़ॉर्मैट में भेजा जाता है और
- जब पेलोड होता है, तो Apigee के ज़रिए डीकंप्रेशन के बाद रिस्पॉन्स पेलोड का साइज़ कंप्रेस किए गए फ़ॉर्मैट में भेजा जाएगा. यह हमेशा स्वीकृत मान के समान रहेगा सीमा (10 एमबी) होनी चाहिए.
असंपीडित
स्थिति #1: रिस्पॉन्स पेलोड, कंप्रेस किए गए फ़ॉर्म में भेजा गया है
target.received.content.length की वैल्यू नोट करें:
अनुरोध के हेडर मान target.received.content.length ~11 एमबी संपीडित
स्थिति #2: कंप्रेस किए गए फ़ॉर्म में पेलोड का अनुरोध करें
target.received.content.length की वैल्यू नोट करें:
हेडर का अनुरोध करें मान target.received.content.length ~10 एमबी इस टेबल में बताया गया है कि Apigee के ज़रिए
502
गड़बड़ी, इसके तहत क्यों वापस आती है ये दो स्थितियां हैं, जो target.received.content.length की वैल्यू पर आधारित हैं:स्थिति target.received.content.length की वैल्यू गड़बड़ी की वजह असंपीडित प्रारूप में प्रतिसाद पेलोड ~11 एमबी आकार > 10 एमबी की सीमा कंप्रेस किए गए फ़ॉर्मैट में रिस्पॉन्स पेलोड ~10 एमबी संपीड़न हटाने पर आकार सीमा पार हो गई
NGINX
NGINX ऐक्सेस लॉग का इस्तेमाल करके गड़बड़ी का पता लगाने के लिए:
- अगर आप निजी Cloud उपयोगकर्ता हैं, तो यह पता करने के लिए कि NGINX ऐक्सेस लॉग का इस्तेमाल किया जा सकता है या नहीं
एचटीटीपी
502
गड़बड़ियों के बारे में अहम जानकारी. NGINX ऐक्सेस लॉग देखें:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
कहां: ORG, ENV, और PORT# को असल वैल्यू से बदल दिया जाता है.
- यह देखने के लिए खोजें कि किसी विशिष्ट अवधि के दौरान कोई
502
गड़बड़ी हुई है या नहीं (अगर समस्या पिछली बार हुई है) या अगर कोई अनुरोध अब भी पूरा नहीं हो पा रहा है502
. - अगर आपको मेल खाने वाले X-Apigee-fault-code की
502
गड़बड़ी मिलती हैprotocol.http.TooBigBody
का मान निकालें, फिर X-Apigee-fault-source.NGINX ऐक्सेस लॉग में 502 गड़बड़ी का नमूना:
NGINX ऐक्सेस लॉग की ऊपर दी गई सैंपल एंट्री में X-Apigee- के लिए ये वैल्यू हैं गड़बड़ी का कोड और X-Apigee-fault-source:
रिस्पॉन्स हेडर मान X-Apigee-fault-code protocol.http.TooBigBody
X-Apigee-fault-source target
वजह: रिस्पॉन्स पेलोड का साइज़, तय सीमा से ज़्यादा है
संक्रमण की जांच
- इनके लिए गलत कोड, गड़बड़ी का सोर्स, और रिस्पॉन्स पेलोड का साइज़ तय करें एपीआई मॉनिटरिंग, ट्रेस टूल या NGINX ऐक्सेस लॉग का इस्तेमाल करके मिली गड़बड़ी. इसके बारे में ज़्यादा जानकारी यहां दी गई है स्थिति #1 के साथ गड़बड़ी की सामान्य जानकारी पाने का तरीका.
- अगर गड़बड़ी के सोर्स की वैल्यू
target
है, तो इससे पता चलता है कि रिस्पॉन्स टारगेट/बैकएंड सर्वर से Apigee को भेजा गया पेलोड साइज़ Apigee Edge में अनुमति की सीमा. - पहले चरण में बताए गए जवाब के पेलोड के साइज़ की पुष्टि करें.
- अगर पेलोड का साइज़ > 10 एमबी की सीमा तय नहीं होती है, तो गड़बड़ी की वजह भी यही होगी.
- अगर पेलोड साइज़ ~ 10 एमबी की तय सीमा है, तो हो सकता है कि रिस्पॉन्स पेलोड को कंप्रेस किए गए फ़ॉर्मैट में पास किया जाता है. पर जाएँ वजह: डिकंप्रेशन के बाद रिस्पॉन्स पेलोड का साइज़, तय सीमा से ज़्यादा हो गया है.
- पुष्टि करें कि रिस्पॉन्स पेलोड का साइज़ वाकई > 10 एमबी की अनुमति है. इसके लिए,
असल रिस्पॉन्स पाएं:
- अगर आपके पास टारगेट/बैकएंड सर्वर से किए गए असल अनुरोध का ऐक्सेस नहीं है, तो इसके बाद, रिज़ॉल्यूशन पर जाएं.
- अगर आपके पास टारगेट/बैकएंड सर्वर से किए गए असल अनुरोध का ऐक्सेस है, तो
यह तरीका अपनाएं:
- अगर आप सार्वजनिक क्लाउड/प्राइवेट क्लाउड के उपयोगकर्ता हैं, तो बैकएंड सर्वर से या किसी अन्य मशीन से को बैकएंड सर्वर पर अनुरोध करने की अनुमति है.
- अगर आप निजी क्लाउड उपयोगकर्ता हैं, तो किसी एक मैसेज प्रोसेसर का बैकएंड सर्वर.
- रिस्पॉन्स में पास किए गए पेलोड के साइज़ की पुष्टि करने के लिए, कॉन्टेंट की लंबाई वाला हेडर.
- अगर आपको लगता है कि पेलोड का साइज़ Apigee Edge में अनुमति की सीमा होती है, तो यही वजह है समस्या.
बैकएंड सर्वर से मिलने वाले जवाब का सैंपल:
curl -v https://BACKENDSERVER-HOSTNAME/testfile
* About to connect() to 10.14.0.10 port 9000 (#0) * Trying 10.14.0.10... * Connected to 10.14.0.10 (10.148.0.10) port 9000 (#0) > GET /testfile HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 10.14.0.10:9000 > Accept: */* > < HTTP/1.1 200 OK < Accept-Ranges: bytes < Content-Length: 11534336 < Content-Type: application/octet-stream < Last-Modified: Wed, 30 Jun 2021 08:18:02 GMT < Date: Wed, 30 Jun 2021 09:22:41 GMT < ----snipped---- <Response Body>
ऊपर दिए गए उदाहरण में, आप देख सकते हैं कि
Content-Length: 11534336 (which is ~11 MB)
, जो इस गड़बड़ी की वजह है, क्योंकि यह से ज़्यादा है Apigee Edge में इस्तेमाल करने की अनुमति है.
रिज़ॉल्यूशन
रिज़ॉल्यूशन देखें.
वजह: रिस्पॉन्स पेलोड का साइज़, इसके बाद तय सीमा से ज़्यादा हो गया है डीकंप्रेशन
अगर रिस्पॉन्स पेलोड कंप्रेस किए गए फ़ॉर्मैट में भेजा जाता है और रिस्पॉन्स हेडर
Content-Encoding
को gzip,
Apigee, जवाब को डीकंप्रेस करता है
पेलोड. अगर Apigee को लगता है कि पेलोड का साइज़ ज़्यादा है, तो डीकंप्रेस की प्रोसेस के दौरान
Apigee Edge में अनुमति वाली सीमा से ज़्यादा है, तो यह और रुक जाती है
डीकंप्रेशन की मदद से तुरंत जवाब देता है
502 Bad Gateway
और गड़बड़ी कोड protocol.http.TooBigBody
है.
संक्रमण की जांच
- इसके लिए गलत कोड, गलत सोर्स, और रिस्पॉन्स पेलोड का साइज़ तय करें एपीआई मॉनिटरिंग, ट्रेस टूल या NGINX ऐक्सेस लॉग का इस्तेमाल करके मिली गड़बड़ी. इसकी जानकारी यहां दी गई है स्थिति #2 के साथ, गड़बड़ी की सामान्य जानकारी पाने का तरीका.
- अगर गलत सोर्स की वैल्यू
target
है, तो इससे पता चलता है कि टारगेट/बैकएंड ऐप्लिकेशन से Apigee को भेजा गया रिस्पॉन्स पेलोड साइज़ Apigee Edge में स्टोरेज की सीमा. - पहले चरण में बताए गए जवाब के पेलोड के साइज़ की पुष्टि करें.
- अगर पेलोड का साइज़ > 10 एमबी की अनुमति नहीं है, तो गड़बड़ी की वजह यही है.
- अगर पेलोड साइज़ ~ 10 एमबी की तय सीमा है, तो हो सकता है कि रिस्पॉन्स पेलोड उतना ही हो को कंप्रेस किए गए फ़ॉर्मैट में पास किया जा सकता है. इस मामले में, कंप्रेस की गई फ़ाइलों के कंप्रेस किए गए साइज़ की जांच करें. रिस्पॉन्स पेलोड.
- आप यह पुष्टि कर सकते हैं कि टारगेट/बैकएंड से मिला जवाब कंप्रेस किए गए फ़ॉर्मैट में भेजा गया था और
इनमें से किसी एक का इस्तेमाल करके, कंप्रेस किया गया साइज़, तय सीमा से ज़्यादा था
तरीका:
ट्रेस
ट्रेस टूल का इस्तेमाल करना:
- अगर आपने अनुरोध पूरा न होने के मामले में कोई ट्रेस कैप्चर कर ली है, तो ज़्यादा जानकारी के लिए, यहां दिया गया तरीका देखें
Trace और
- target.received.content.length की वैल्यू तय करना
- पुष्टि करें कि क्लाइंट के अनुरोध में
कॉन्टेंट को कोड में बदलने का तरीका:
gzip
हेडर
- अगर target.received.content.length की वैल्यू 10 एमबी के आस-पास है, तो
सीमा और रिस्पॉन्स हेडर कॉन्टेंट-एन्कोडिंग:
gzip
जैसा है, तो की वजह.
असल अनुरोध
असल अनुरोध का इस्तेमाल करके:
- अगर आपके पास टारगेट/बैकएंड सर्वर से किए गए असल अनुरोध का ऐक्सेस नहीं है, तो इसके बाद, रिज़ॉल्यूशन पर जाएं.
- अगर आपके पास टारगेट/बैकएंड सर्वर से किए गए असल अनुरोध का ऐक्सेस है, तो
यह तरीका अपनाएं:
- जवाब में पास किए गए पेलोड के साइज़ की पुष्टि करने के लिए,
जवाब में
Content-Encoding
हेडर भेजा गया. - अगर आपको लगता है कि रिस्पॉन्स हेडर
Content-Encoding
को इस पर सेट किया गया हैgzip
और पेलोड का अनकंप्रेस्ड साइज़, Apigee Edge में, तय सीमा होनी चाहिए, तो यह इस गड़बड़ी को ठीक करना ज़रूरी है.बैकएंड सर्वर से मिले जवाब का सैंपल:
curl -v https://BACKENDSERVER-HOSTNAME/testzippedfile.gz
* About to connect() to 10.1.0.10 port 9000 (#0) * Trying 10.1.0.10... * Connected to 10.1.0.10 (10.1.0.10) port 9000 (#0) > GET /testzippedfile.gz HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 10.1.0.10:9000 > Accept: */* > < HTTP/1.1 200 OK < Accept-Ranges: bytes < Content-Encoding: gzip < Content-Type: application/x-gzip < Last-Modified: Wed, 30 Jun 2021 08:18:02 GMT < Testheader: test < Date: Wed, 07 Jul 2021 10:14:16 GMT < Transfer-Encoding: chunked < ----snipped---- <Response Body>
ऊपर दिए गए मामले में, हेडर
Content-Encoding: gzip
भेजा जाता है और जवाब में फ़ाइलtestzippedfile.gz
का आकार इससे कम है सीमा, हालांकि असंपीडित फ़ाइलtestzippedfile
का आकार था ~15 एमबी.
- जवाब में पास किए गए पेलोड के साइज़ की पुष्टि करने के लिए,
जवाब में
मैसेज प्रोसेसर के लॉग
मैसेज प्रोसेसर लॉग का इस्तेमाल करना:
- अगर आप निजी क्लाउड उपयोगकर्ता हैं, तो मैसेज प्रोसेसर के लॉग का इस्तेमाल इन कामों के लिए किया जा सकता है
एचटीटीपी
502
गड़बड़ियों के बारे में अहम जानकारी तय करते हैं. मैसेज प्रोसेसर के लॉग देखना
/opt/apigee/var/log/edge-message-processor/logs/system.log
खोज करके देखें कि किसी तय अवधि के दौरान, कोई
502
गड़बड़ी हुई या नहीं (अगर समस्या पहले हुई है) या कोई अनुरोध अब भी पूरा नहीं हो पा रहा है502
. इन खोज स्ट्रिंग का इस्तेमाल किया जा सकता है:grep -ri "chunkCount"
grep -ri "BadGateway: Body buffer overflow"
- आपको
system.log
से मिलती-जुलती लाइनें मिलेंगी, जो नीचे दी गई हैं (आपके मामले मेंTotalRead
औरchunkCount
अलग हो सकते हैं):2021-07-07 09:40:47,012 NIOThread@7 ERROR HTTP.SERVICE - TrackingInputChannel.checkMessageBodyTooLarge() : Message is too large. TotalRead 10489856 chunkCount 2571 2021-07-07 09:40:47,012 NIOThread@7 ERROR HTTP.CLIENT - HTTPClient$Context.onInputException() : ClientInputChannel(ClientChannel[Connected: Remote:10.148.0.10:9000 Local:10.148.0.9:42240]@9155 useCount=1 bytesRead=0 bytesWritten=182 age=23ms lastIO=0ms isOpen=true).onExceptionRead exception: {} com.apigee.errors.http.server.BadGateway: Body buffer overflow 2021-07-07 09:40:47,012 NIOThread@7 ERROR ADAPTORS.HTTP.FLOW - AbstractResponseListener.onException() : AbstractResponseListener.onError(HTTPResponse@77cbd7c4, Body buffer overflow)
डिकंप्रेशन की प्रक्रिया के दौरान, जैसे ही मैसेज प्रोसेसर तय करता है कि कुल रीड बाइट है > 10 एमबी तक हो जाता है, तो यह रुक जाता है और नीचे दी गई लाइन को प्रिंट कर देता है:
Message is too large. TotalRead 10489856 chunkCount 2571
इसका मतलब है कि रिस्पॉन्स पेलोड का साइज़ 10 एमबी से ज़्यादा है और Apigee जब ऐप्लिकेशन का साइज़ 10 एमबी की तय सीमा से ज़्यादा होने लगता है, तब गड़बड़ी का कोड मिलता है
protocol.http.TooBigBody
- अगर आपने अनुरोध पूरा न होने के मामले में कोई ट्रेस कैप्चर कर ली है, तो ज़्यादा जानकारी के लिए, यहां दिया गया तरीका देखें
Trace और
रिज़ॉल्यूशन
साइज़ ठीक करें
पहला विकल्प [सुझाया गया]: टारगेट सर्वर ऐप्लिकेशन को ठीक करें, ताकि Apigee की तय सीमा से ज़्यादा पेलोड साइज़ न भेजा जा सके
- यह विश्लेषण करें कि चुनिंदा टारगेट सर्वर, रिस्पॉन्स / पेलोड साइज़ को क्यों भेज रहा है में परिभाषित सीमा से अधिक है सीमाएं.
- अगर यह ज़रूरी नहीं है, तो अपने टारगेट सर्वर ऐप्लिकेशन में बदलाव करें, ताकि यह रिस्पॉन्स / पेलोड का साइज़, तय सीमा से कम है.
- अगर यह ज़रूरी हो और जवाब/पेलोड की संख्या तय सीमा से ज़्यादा हो सीमा, अगले विकल्पों पर जाएं.
हस्ताक्षर किया गया यूआरएल पैटर्न
विकल्प #2 [सुझाया गया]: किसी Apigee Javaकॉलआउट में साइन किए गए यूआरएल पैटर्न का इस्तेमाल करें
10 एमबी से बड़े पेलोड के लिए, Apigee, Apigee Javaकॉलआउट, जिसे Edge कॉलआउट: GitHub पर साइन किए गए यूआरएल जनरेटर का उदाहरण.
स्ट्रीमिंग
तीसरा विकल्प: स्ट्रीमिंग का इस्तेमाल करना
अगर आपके एपीआई प्रॉक्सी को बहुत बड़े अनुरोध और/या रिस्पॉन्स मैनेज करने की ज़रूरत है, तो Apigee में स्ट्रीमिंग चालू करना.
CwC
चौथा विकल्प: बफ़र की सीमा बढ़ाने के लिए, CwC प्रॉपर्टी का इस्तेमाल करना
इस विकल्प का उपयोग केवल तब करना चाहिए जब आप सुझाए गए विकल्पों में से किसी का भी इस रूप में उपयोग नहीं कर सकते: डिफ़ॉल्ट साइज़ बढ़ाने पर, परफ़ॉर्मेंस से जुड़ी समस्याएं हो सकती हैं.
Apigee CwC प्रॉपर्टी की मदद से, अनुरोध और रिस्पॉन्स के पेलोड का साइज़ बढ़ाया जा सकता है सीमा तय करें. जानकारी के लिए, इसे देखें राऊटर या मैसेज प्रोसेसर पर मैसेज के साइज़ की सीमा सेट करें.
सीमाएं
Apigee को चाहिए कि क्लाइंट ऐप्लिकेशन और बैकएंड सर्वर इससे ज़्यादा पेलोड साइज़ न भेजे
में
Request/response size
के लिए दस्तावेज़ के मुताबिक अनुमति की सीमा
Apigee Edge की सीमाएं.
- अगर आप पब्लिक क्लाउड उपयोगकर्ता हैं, तो अनुरोध और जवाब की ज़्यादा से ज़्यादा सीमा तय होगी
पेलोड का साइज़,
Request/response size
के लिए इस तरह का दस्तावेज़ है Apigee Edge की सीमाएं. - अगर आप निजी क्लाउड उपयोगकर्ता हैं, तो हो सकता है कि आपने डिफ़ॉल्ट सेटिंग में बदलाव किया हो अनुरोध और रिस्पॉन्स के पेलोड साइज़ की सीमा (भले ही, यह सुझाया गया तरीका न हो). पेलोड के साइज़ की ज़्यादा से ज़्यादा सीमा तय की जा सकती है. इसके लिए, यहां दिए गए निर्देशों का पालन करें मौजूदा सीमा देखने का तरीका.
मौजूदा सीमा कैसे देखें?
इस सेक्शन में यह पुष्टि करने का तरीका बताया गया है कि प्रॉपर्टी
HTTPResponse.body.buffer.limit
को मैसेज में नई वैल्यू के साथ अपडेट कर दिया गया है
प्रोसेसर.
मैसेज प्रोसेसर मशीन पर, प्रॉपर्टी खोजें
HTTPResponse.body.buffer.limit
को/opt/apigee/edge-message- processor/conf
डायरेक्ट्री में इंस्टॉल करें और देखें कि नीचे दी गई जानकारी के हिसाब से कौनसी वैल्यू सेट की गई है:grep -ri "HTTPResponse.body.buffer.limit" /opt/apigee/edge-message-processor/conf
ऊपर दिए गए निर्देश का सैंपल नतीजा कुछ इस तरह है:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPResponse.body.buffer.limit=10m
ऊपर दिए गए उदाहरण में, ध्यान दें कि प्रॉपर्टी
HTTPResponse.body.buffer.limit
को10m
मान के साथ सेट कर दिया गया हैhttp.properties
.इससे पता चलता है कि अनुरोध पेलोड साइज़ की सीमा को Apigee प्राइवेट क्लाउड 10 एमबी का है.
अगर आपको अब भी Apigee की सहायता टीम से कोई मदद चाहिए, तो ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी जानकारी इकट्ठा करना ज़रूरी है.
ऐप्लिकेशन की परफ़ॉर्मेंस से जुड़ी जानकारी इकट्ठा करना ज़रूरी है
गड़बड़ी की नीचे दी गई जानकारी इकट्ठा करें. इसके बाद, Apigee Edge की सहायता टीम से संपर्क करें:
अगर आप सार्वजनिक क्लाउड के उपयोगकर्ता हैं, तो यह जानकारी दें:
- संगठन का नाम
- परिवेश का नाम
- एपीआई प्रॉक्सी का नाम
502
गड़बड़ी को ठीक करने के लिए इस्तेमाल किए गए curl निर्देश को पूरा करें- एपीआई अनुरोधों के लिए फ़ाइल ट्रेस करें
- पेलोड के साइज़ के साथ टारगेट/बैकएंड सर्वर से मिले रिस्पॉन्स का पूरा आउटपुट
अगर आप निजी Cloud उपयोगकर्ता हैं, तो यह जानकारी दें:
- पूरे न हो पाने वाले अनुरोधों की वजह से, गड़बड़ी का पूरा मैसेज मिला
- संगठन का नाम
- परिवेश का नाम
- एपीआई प्रॉक्सी बंडल
- पूरे न हो पाने वाले एपीआई अनुरोधों के लिए फ़ाइल ट्रेस करें
502
गड़बड़ी को ठीक करने के लिए इस्तेमाल किए गए curl निर्देश को पूरा करें- पेलोड के साइज़ के साथ टारगेट/बैकएंड सर्वर से मिले रिस्पॉन्स का पूरा आउटपुट
NGINX ऐक्सेस लॉग
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
कहां: ORG, ENV और PORT# को इससे बदल दिया गया है सेट करें.
- मैसेज प्रोसेसर के सिस्टम लॉग
/opt/apigee/var/log/edge-message-processor/logs/system.log