/ / स्व-होस्ट विंडोज सेवा के लिए लोड बैलेंस / फेल-ओवर - .net, विंडोज़, wcf, कंसोल-एप्लिकेशन

स्व-होस्ट विंडोज सेवा - .NET, windows, wcf, console-application के लिए लोड बैलेंस / विफलता

मैंने 2 अलग-अलग सर्वरों के लिए एक ही स्व-होस्ट विंडोज़ सेवा को तैनात किया है। (एक प्राथमिक, एक बैकअप) मूल रूप से, यह सेवा HTTP प्रोटोकॉल एक्सेस (उदा। http://machine1:60001/getdata/123)।

मैंने उपभोक्ताओं के लिए कॉन्फ़िगरेशन सेट किया है, हर समय प्राथमिक कनेक्ट करने के लिए (http://machine1:60001), लेकिन इसके लिए कुछ समय की आवश्यकता होती है जब भी हम इस सेवा को तैनात करते हैं।

जैसा कि यह सेवा हर समय उपलब्ध होनी चाहिए, क्या इस विंडो सेवा के लिए लोड संतुलन, या असफल-ओवर सेट करने का कोई आसान तरीका है?

वैसे, स्वयं-होस्ट सेवा के लिए, इसका एक इंटरफ़ेस है: http://machine1:60001/amialive यह तय करने के लिए कि क्या सेवा उपलब्ध है। और मैं यह तय करने के लिए इस इंटरफ़ेस का उपयोग करना चाहता हूं कि क्या यह ठीक है।

उत्तर:

उत्तर № 1 के लिए 1

उन कुछ मुद्दों के अलावा जिनके बारे में आपको जानकारी होनी चाहिए, वे MSDN लेख में उल्लिखित हैं लोड संतुलन WCF (उदाहरण के लिए यदि आपको लोड संतुलन का उपयोग करने की योजना है और न केवल विफलता सेटअप की योजना है, तो आप KeepAlive को अक्षम कर सकते हैं), आप किसी भी सामान्य HTTP लोड प्रतिबंध तकनीक का उपयोग कर सकते हैं।

आप HTTP लोड बैलेंसिंग कैसे सेट करते हैं, यह सब आपकी तैनाती पर निर्भर करता है और संभावना एक पूरे सवाल को खुद उठा सकती है, लेकिन त्वरित संस्करण यह है कि आप कुछ टुकड़ा कर सकते हैं हार्डवेयर, सॉफ्टवेयर, या 3 पार्टी सेवा इसके लिए सभी अनुरोधों को स्वीकार करता है http://machine1:60001 जो फिर वास्तविक भौतिक मशीन पर कनेक्शन को निर्देशित करता है जो अनुरोध की मेजबानी करेगा।


उत्तर № 2 के लिए 1

कुछ दिनों की जांच के बाद, मुझे एक WCF अंतर्निहित सुविधा मिली: WCF रूटिंग सिस्टम। (System.ServiceModel.Routing.IRequestReplyRouter)

असल में, यह सभी WCF अनुरोधों को रूट कर सकता हैगंतव्य सेवा के लिए ग्राहक अंत। दरअसल, यह क्लाइंट और WCF सेवा के रूप में काम करता है। एंड क्लाइंट इसे (डब्ल्यूसीएफ सेवा के रूप में) से जोड़ता है, जबकि एक ही समय में, यह गंतव्य सेवाओं (ग्राहक के रूप में) से जुड़ता है। आप app.config के माध्यम से जानकारी प्राप्त कर सकते हैं जो क्लाइंट कॉन्फिगर और सर्विस कॉन्फिगर दोनों को कवर करता है।

आप यहाँ msdn में सरल कार्यान्वयन पा सकते हैं:

https://msdn.microsoft.com/en-us/library/ee667246(v=vs.110).aspx