के लिए पुनः प्रयास, लोड संतुलन और सर्किट ब्रेकर के लाभ कैसे प्राप्त करें I spring-cloud-Eureka
समर्थित माइक्रोस्कोर्सेस अनुप्रयोग में निम्नलिखित सुविधाएं चाहते हैं।स्प्रिंग क्लाउड - वितरित वसंत अनुप्रयोग
1) लोड संतुलन - अगर मैं एक सेवा के लिए 3 नोड्स है, लोड संतुलन उन दोनों के बीच
2 होना चाहिए) का पुन: प्रयास तर्क - अगर एक नोड के कोई जवाब नहीं दिया, पुन: प्रयास निश्चित संख्या के लिए होना चाहिए (उदाहरण के लिए 3. विन्यास योग्य होना चाहिए) एक और नोड पर वापस गिरने से पहले।
3) सर्किट ब्रेकर - अगर कुछ कारणों से, सेवा के सभी 3 नोड्स में कुछ समस्याएं डीबी तक पहुंच रही हैं और अपवाद फेंक रही हैं या प्रतिक्रिया नहीं दे रही हैं, तो सर्किट खुला होना चाहिए, वापस कॉल विधि को बुलाएं और सर्किट स्वचालित रूप से सेवाओं के बाद बंद हो जाती है ठीक।
वसंत-बादल के कई उदाहरण को देखते हुए, मैं
1) RestTemplate विकल्प 1. साथ में मदद मिलेगी पता लगा, लेकिन जब सेवा के RestTemplate पहुँच एक उदाहरण है और यदि नोड में विफल रहता है, यह अन्य दो नोड्स के साथ की कोशिश करेंगे ?
2) हाइस्टिक्स सर्किट ब्रेकर विकल्प (ऊपर 3) के साथ मदद करेगा। लेकिन अगर सिर्फ एक नोड प्रतिक्रिया नहीं दे रहा है, तो सर्किट खोलने और कॉलबैक विधि को कॉल करने से पहले, यह अन्य नोड्स आज़माएगा। और सेवा ठीक होने के बाद यह स्वचालित रूप से सर्किट बंद कर देगा?
3) वसंत-क्लाउड के साथ पुनः प्रयास कैसे करें? मुझे @Retryable
एनोटेशन के बारे में पता है। लेकिन क्या यह निम्नलिखित परिस्थितियों में मदद करेगा? 3 बार के लिए एक नोड के साथ पुनः प्रयास करें और इसके बाद विफल हो जाए, सर्किट ब्रेकर में 3 बार अगला नोड 3 बार और अंतिम नोड को आजमाएं।
मुझे लगता है कि ये सभी कॉन्फ़िगरेशन वसंत बादल में उपलब्ध हैं। लेकिन कठिन समाधान समझने के लिए इन सभी के लिए कॉन्फ़िगर कैसे करें।
यहाँ one है प्रस्तावित:
@HystrixCommand
@Retryable
public Object doSomething() {
// use your RestTemplate here
}
लेकिन मैं पूरी तरह से पता नहीं है अगर यह मुझे सभी बारीकियों मैं उपर्युक्त के साथ मदद करने के लिए जा रहा है।
मुझे लगता है कि @FeignClient
है। लेकिन इस blog से, मैं समझता हूं कि यह HTTP क्लाइंट अनुरोधों के लिए एक उच्च स्तरीय सुविधा प्रदान करता है। क्या यह पुनः प्रयास और सर्किट ब्रेकर और सभी को संतुलित संतुलन में मदद करता है?
धन्यवाद
क्या यह संभव है और यह Zuul (एपीआई प्रवेश द्वार) के माध्यम से प्रॉक्सी सभी @FeignClient अनुरोध करने के लिए कोई मतलब होता है? – dementiev
स्थिति पर निर्भर करता है, अगर आपके पास सेवाओं तक सीधी पहुंच है तो मैं मध्य व्यक्ति को छोड़ दूंगा, लेकिन यदि संसाधनों के पूल के सामने गेटवे लगाने का कोई अच्छा कारण है तो यह समझ में आएगा। –