8

मैंने Spring Tips: Functional Reactive Endpoints with Spring Framework 5.0 देखा है और वसंत रिएक्टर के बारे में थोड़ा सा पढ़ा है लेकिन मैं इसे समझ नहीं सकता।स्प्रिंग रिएक्टर और नेटटी बनाम टोमकैट http

क्या होने अंतिमबिंदुओं के लाभों को देखते हुए कि मैं netty मिल गया है और वसंत रिएक्टर सक्रिय वापसी कर रहे हैं Flux/Mono उदाहरणों (jacksonified) ऊपर सीधे डीटीओ वस्तुओं (jacksonified) के बजाय,? मैंने शुरू में माना कि प्रतिक्रियाशील धाराएं, http अनुरोध/प्रतिक्रिया संदर्भ में, वेबसाइकिलों की तरह अधिक काम करती हैं, जहां सर्वर एक खुले चैनल के साथ रिसीवर को डेटा धक्का देता है लेकिन ऐसा लगता है कि ऐसा नहीं लगता है।

इसके अलावा टोमकैट की तुलना में प्रतिक्रियाशील प्रोग्रामिंग में नेटटी वास्तव में बेहतर क्या करती है?

मुझे खेद है कि ये प्रश्न बेवकूफ लगते हैं लेकिन मैं इस नई ढांचे की दिशा के उद्देश्य को समझ नहीं पा रहा हूं। यह क्यों आया, यह कैसे काम करता है और यह किस समस्या का समाधान करता है?

उत्तर

7

मुझे अत्यधिक सुझाव है कि आप हाल ही में देवॉक्सक्स बेल्जियम "Reactive Web Application with Spring 5" by Rossen Stoyanchev में प्रस्तुत किए गए देखें।

वहाँ में उन्होंने कैसे रिएक्टिव वेब नियंत्रक सतह पर (नीचे प्रस्तुत) की तरह वसंत MVC HTTP सर्वलेट अनुरोध लग रहा है/प्रतिसाद नियंत्रक बारे में बात करती है, लेकिन यह वास्तव में है नहीं

@GetMapping("https://stackoverflow.com/users/{id}") 
public Mono<User> getUser(@PathValiable Long id) { 
    return this.userRepository.findById(id); 
} 

@GetMapping("/users") 
public Flux<User> getUsers() { 
    return this.userRepository.findAll(); 
} 

वह के बारे में कैसे बात करती है Servlet 3.1 हालांकि गैर-अवरुद्ध पूरी तरह से प्रतिक्रियाशील के लिए काम नहीं करता है और कैसे Servlet 3.1 और रिएक्टिव स्ट्रीम को जोड़ने वाला गोंद कोड Servlet 3.1 अनुपालन वेब कंटेनर (जेटी और टोमकैट) के लिए स्प्रिंग 5 परिवर्तनों के हिस्से के रूप में कार्यान्वित किया जाता है।

और निश्चित रूप से वह पूरी तरह प्रतिक्रियाशील गैर-अवरुद्ध अनुपालन सर्वर (नेटटी, अंडरटेव) पर स्पर्श कर रहा है प्रतिक्रियाशील स्ट्रीम चलाने के लिए समर्थित हैं।

1

इसका मतलब यह नहीं है कि नेटटी टोमकैट से बेहतर है। कार्यान्वयन अलग है। टोमकैट सर्वलेट 3.1 spec को लागू करने के लिए जावा एनआईओ का उपयोग करता है। इस बीच, नेटटी एनआईओ का भी उपयोग करता है लेकिन कस्टम एपीआई पेश करता है। यदि आप अंतर्दृष्टि प्राप्त करना चाहते हैं कि नेटलेट में सर्वलेट 3.1 कैसे लागू होता है, तो इस वीडियो को देखें https://youtu.be/uGXsnB2S_vc

संबंधित मुद्दे