6

मैं nettcprelaybinding के साथ सेवा बस का उपयोग कर रहा हूं। एक तरफ OnPremise सर्वर है जिसका सेवा बस से लगातार कनेक्शन है। दूसरी तरफ एक एज़ूर वेब भूमिका है जो उपयुक्त सेवा बस खोलकर और सर्वर से जानकारी प्राप्त करके आने वाले वेब अनुरोधों का जवाब देती है।Azure Servicebus रिले प्रदर्शन

मेरी चिंता चैनल निर्माण का प्रदर्शन है। सर्विस बस के माध्यम से ऑनपेरिस सर्वर पर नया कनेक्शन स्थापित करने में कुछ सेकंड लगते हैं। मेरे चैनल फैक्टरी को कैशिंग करना ज्यादा मदद नहीं करता है। चैनल खोलने के बाद स्थानांतरण प्रदर्शन बहुत अच्छा है।

प्रदर्शन में सुधार करने के तरीके पर कोई सुझाव। Azure में कैशिंग जानकारी केवल कुछ हद तक किया जा सकता है। मुझे onpremise सर्वर से कनेक्ट करने की जरूरत है।

क्या मैं किसी भी तरह सेवा बस में कनेक्शन पूल स्थापित कर सकता हूं?

अधिक जानकारी पर, कई अलग-अलग ऑनप्रमीज़ सर्वर हैं, इसलिए यह जीवित रहने के लिए केवल एक कनेक्शन नहीं है।

उत्तर

2

आपको कनेक्शन को पूल करने में सक्षम होना चाहिए, लेकिन एज़ूर लोड बैलेंसर्स terminate any open connection that sits idle for more then 60 seconds होगा। इसलिए यदि आप कॉल के बीच कनेक्शन से अधिक समय तक कैशिंग कर रहे हैं, तो आपको कनेक्शन को जीवित रखने में मदद के लिए किसी प्रकार का दिल की धड़कन पैटर्न लागू करने की आवश्यकता होगी।

एक और विकल्प जिसे आप विचार करना चाहते हैं वह Azure Connect है। यह आपको क्लाउड होस्टेड संसाधनों से ऑन-प्रिमाइसेस सर्वर पर कनेक्शन इंगित करने के लिए एक ipsec बिंदु बनाने की अनुमति देता है। इसे ऑन-प्रिमाइसेस बॉक्स पर क्लाइंट स्थापित करने की आवश्यकता होती है, जिसे आप कनेक्ट करना चाहते हैं, लेकिन कुछ ऑन-प्रिमाइसेस प्रॉक्सी सेवा के लिए एक सरल गेटवे कनेक्शन स्थापित करने के लिए इसका उपयोग कर रहे हैं।

+0

अच्छी प्रतिक्रिया के लिए धन्यवाद। 60 दूसरी सीमा के बारे में नहीं पता था। अगर मैं कनेक्शन को पूल करना चाहता हूं। ऐसा करने का एक अच्छा तरीका क्या है? मुझे आपके लिंक का पालन करके इस पर कुछ जानकारी मिली है (http://code.msdn.microsoft.com/WCF-Azure-NetTCP-Keep-Alive-09f50fd9)। लेकिन क्या यह एक बहु-उदाहरण Azure पर्यावरण में अच्छा समाधान है? यदि एक चैनल एक उदाहरण पर खुला है और अगले क्लाइंट को एक अलग उदाहरण पर निष्पादित किया गया है? या लोड बैलेंसर सुनिश्चित करता है कि एक ही उदाहरण का उपयोग किया जाता है? – user1284390

+0

जैसा कि मैं इसे समझता हूं, प्रत्येक इंस्टेंस को अपना कनेक्शन मिलता है। और चूंकि वे उन्हें खुले रख रहे हैं, इसलिए आपको एक ही नामस्थान पर अधिकतम कनेक्शन सीमा (2000 या ऐसे कुछ विश्वास) के बारे में पता होना चाहिए। यदि यह विश्वास करने के लिए अच्छा या बुरा है तो प्रदर्शन और मापनीयता के लिए आपकी आवश्यकताओं पर निर्भर करता है। – BrentDaCodeMonkey

+0

यह थोड़ा पुराना है - लेकिन केवल एफवाईआई, ऐसा लगता है कि अधिकांश एज़ूर एलबी अब सॉफ्टवेयर आधारित हैं, और 4 मिनट का डिफ़ॉल्ट टाइमआउट (पूर्व हार्डवेयर आधारित एलबी के साथ 1 मिनट नहीं) - और यह अब कॉन्फ़िगर करने योग्य है। हालांकि, यह मेरे लिए अस्पष्ट है, इस समय, यदि सेवा बस क्लाइंट लाइब्रेरी स्वचालित रूप से आपके लिए टीसीपी KeepAlive लागू कर रही है, और इसलिए एक एलबी टाइमआउट वास्तव में कोई मुद्दा नहीं है: https://azure.microsoft.com/en-us/blog/new-configurable-idle-timeout-for-azure-load-balancer/ – Jmoney38

7

मैं माइक्रोसॉफ्ट में सेवा बस टीम का सदस्य हूं। कनेक्शन भेजने की लागत संदेश भेजने की तुलना में अधिक है क्योंकि कई पक्षों को यह सुनिश्चित करने के लिए आवश्यक है कि वे एक-दूसरे से बात कर रहे हों।

इसके लिए शमन एक चैनल फैक्टरी को कैशिंग करने के बजाय चैनल को कैश करना है। NetTcpRelay बाइंडिंग कनेक्शन के लिए पृष्ठभूमि रखने वाले जीवित पिंग्स हैं जो सुनिश्चित करना चाहिए कि चैनल खुला रहता है।

+0

डब्ल्यूसीएफ में मुझे दोषपूर्ण चैनलों पर ध्यान देना होगा, और अपवाद होने पर प्रॉक्सी को फिर से बनाना होगा। सेवा बस इस संबंध में समान है? कैश किए गए क्लाइंट के साथ सेवा बस में अपवादों को कैसे संभालना चाहिए? – LamonteCristo

+0

सभी प्रतिक्रियाओं के लिए फिर से धन्यवाद। वेब भूमिका के दृष्टिकोण से, क्या कोई मुझे कैशिंग रिले चैनलों के अनुशंसित तरीके की ओर इशारा कर सकता है?मैं एक वेब भूमिका उदाहरण पर चैनलों को कैश करोगे या मैं शायद Azure कैश कि उदाहरणों के बीच किया जा सकता है इस्तेमाल कर सकते हैं? makerofthings7: मैं तुम्हारे साथ "सामान्य" WCF के रूप में अपवाद संभाल लेकिन ध्यान रखें कि यह केवल एक से संबंधित है दो कनेक्शन से बाहर रख सकते हैं लगता है। Servicebus, हर तरफ से एक कनेक्शन के लिए ले जाता है। तो एक बुरा हो जाता है तो अन्य स्वचालित रूप से अपने ज्ञान को अधिसूचित नहीं किया गया है। – user1284390