जावा ईई आवेदन की अनुमापकता। आप इसे कैसे दृष्टिकोण होगा?

वोट
1

मैं वित्तीय उद्योग के लिए समाधान पर काम कर रहा है। आवेदन की मुख्य कार्यक्षमता के अनुरोध पर लगातार की दुकान से अर्क बड़े पैमाने पर इनपुट फ़ाइलें लोड करने के लिए, उन्हें पचाने, लगातार दुकान में राज्य को अद्यतन करने और उत्पन्न की क्षमता है। बहुत सीधा।

इनपुट फ़ाइलों उद्योग मानक एक्सएमएल बड़े प्रारूप एक समान है (अधिक है कि मेगाबाइट के सैकड़ों) कई दोहराया प्रविष्टियों वाले संदेशों। स्थायी भंडारण रिलेशनल डेटाबेस है। इंजन POJO आधारित (रीढ़ की हड्डी के रूप में वसंत फ्रेमवर्क) J2EE आवेदन सर्वर पर जावा अनुप्रयोग परिनियोजन योग्य के रूप में लागू किया गया है।

सवाल scalability और समाधान के प्रदर्शन के बारे में है। आवेदन अनुक्रम में एक्सएमएल से प्रविष्टियां प्रक्रियाओं तो समाधान के scalability बल्कि गरीब है। वहाँ एकल फाइल के प्रसंस्करण में आवेदन की एक से अधिक उदाहरण संलग्न करने के लिए कोई रास्ता नहीं है। यही कारण है कि मैं समानांतर प्रसंस्करण शुरू की है प्रविष्टियों इनपुट एक्सएमएल फ़ाइल के रूप में के लिए है। मूल रूप से विचार पूल से श्रमिकों के लिए व्यक्तिगत प्रविष्टियों के प्रसंस्करण प्रेषण करने के लिए है। मैं भेजने के लिए JMS का उपयोग करने का फैसला किया। घटक है कि फाइल लोड धारा पढ़ता है और बस एक प्रविष्टियों निकालता है और भेजने कतार फ़ीड। वहाँ कतार के दूसरे छोर पर समवर्ती उपभोक्ताओं की एक संख्या है। प्रत्येक पंक्ति में से एक संदेश उठाता है और प्रवेश संसाधित करता है और यह अन्य प्रवेश प्रक्रिया करने के लिए तुरंत उपलब्ध है। यह सुंदर वेब कंटेनर के भीतर सर्वलेट्स के समान है। क्या मैं इस दृष्टिकोण के बारे में विशेष रूप से शक्तिशाली में पाया गया कि श्रमिकों के रूप में लंबे समय के रूप कतार साझा किया जाता है रिमोट सर्वर पर तैनात आवेदन की अलग उदाहरणों के भीतर निवास कर सकते हैं है। दुर्भाग्य से सभी कर्मचारियों को एक ही डाटाबेस कि हठ भंडारण रखता है और यह एक टोंटी हो सकता है यदि डेटाबेस सर्वर पर्याप्त शक्तिशाली समवर्ती कामगारों से भार संभाल करने के लिए नहीं है करने के लिए कनेक्ट।

क्या इस वास्तुकला पर आपकी राय क्या है? आप समान आवेदन डिजाइन करने के लिए किया है? अपने डिजाइन पसंद तो क्या था?

12/03/2009 को 16:56
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


7 जवाब

वोट
3

तुम भी, एक बहुत ही आसान मंच मानचित्र के लिए / कम नौकरियों Hadoop पर एक नज़र हो सकता है। विशाल लाभ यह है कि सभी बुनियादी सुविधाओं, Hadoop द्वारा प्रदान की जाती है ताकि आप केवल नए हार्डवेयर नोड्स पैमाने पर करने के लागू होते हैं, है। मानचित्र को लागू करने और कम नौकरियों केवल एक बार किया जाना चाहिए, इस के बाद, आप आप बड़े पैमाने पर भार के साथ क्लस्टर फ़ीड कर सकते हैं।

12/03/2009 को 17:16
का स्रोत उपयोगकर्ता

वोट
2

मुझे लगता है कि वास्तुकला आम तौर पर ध्वनि है। डेटाबेस कामगारों से समवर्ती अद्यतन के एक उच्च संख्या के साथ काम करने में समस्या आ रही है, तो आप अन्य अनुप्रयोग के "पक्ष" पर एक 2 कतार परिचय सकता है: के रूप में प्रत्येक कार्यकर्ता अपने कार्य को पूरा करता है, वे करने के लिए उस कार्य के परिणाम को जोड़ने कतार। तब एक भी कार्यकर्ता प्रक्रिया समय-समय पर 2 कतार से परिणाम वस्तुओं पकड़ लेता है और एक बड़े बैच आपरेशन में डेटाबेस अद्यतन करता है? यही कारण है कि डेटाबेस संगामिति को कम करेगा और अद्यतन की दक्षता में वृद्धि हो सकती है।

12/03/2009 को 17:08
का स्रोत उपयोगकर्ता

वोट
1

मैं हाल ही में अपने खाली समय वसंत बैच 2.0 की जांच में से कुछ खर्च करते हैं। यह जावा बैचिंग स्प्रिंग ढांचे के आधार पर इंजन का नया संस्करण है। लोग वसंत बैच कार्यान्वित संगामिति और इस रिलीज के लिए निष्पादन की बनता है पर ध्यान केंद्रित किया। मुझे कहना पड़ेगा यह होनहार लग रहा है!

14/05/2009 को 10:39
का स्रोत उपयोगकर्ता

वोट
1

समानांतर प्रसंस्करण के लिए, के रूप में Mork0075 कहा, Hadoop के लिए एक महान समाधान है। असल में कई कंपनियों के लिए बहुत बड़ी लॉग विश्लेषण के लिए उपयोग कर रहे हैं। और एक दिलचस्प परियोजना हाइव डेटा भंडारण के लिए Hadoop के आधार पर निर्माण किया गया है।

वैसे भी, मुझे लगता है कि अपने वर्तमान डिजाइन काफी स्केलेबल है। डेटाबेस पर मार श्रमिकों के सभी के बारे में अपनी चिंता का सवाल है, तो आप सिर्फ कार्यकर्ताओं और डेटाबेस के बीच किसी अन्य संदेश कतार डाल सकते हैं। श्रमिक कतार में प्रसंस्करण परिणाम हैं, और आप किसी अन्य प्रोग्राम कतार की सदस्यता और डेटाबेस अद्यतन करने का निर्माण। दोष यह है कि दो कतारों प्रणाली भी जटिल बना सकता है। बेशक आप सिर्फ मौजूदा MQ व्यवस्था करने के लिए एक अन्य विषय जोड़ सकते हैं। यही कारण है कि प्रणाली अधिक सरल कर देगा। एक और दृष्टिकोण है एनएफएस के रूप में एक साझा फाइल सिस्टम, का उपयोग करें, प्रत्येक कार्यकर्ता मशीन साझा फ़ाइल सर्वर पर एक ही निर्देशिका माउंट है, और प्रत्येक कार्यकर्ता साझा फ़ाइल सर्वर पर एक अलग फ़ाइल में अपने प्रसंस्करण परिणाम लिखें। तो फिर तुम डेटाबेस अद्यतन करने नई फ़ाइलें जाँच करने के लिए एक कार्यक्रम का निर्माण। साझा फ़ाइल सर्वर: इस दृष्टिकोण में आप एक और जटिलता परिचय। आप निर्णय कर सकते हैं जो एक और अपने मामले में सरल है।

13/05/2009 को 18:51
का स्रोत उपयोगकर्ता

वोट
1

इसके अलावा, terracota क्लस्टरिंग समाधान पर एक नज़र डालें।

13/03/2009 को 19:46
का स्रोत उपयोगकर्ता

वोट
0

आपके सवालों के जवाब में:

क्या इस वास्तुकला पर आपकी राय क्या है? आप समान आवेदन डिजाइन करने के लिए किया है? अपने डिजाइन पसंद तो क्या था?

मुझे लगता है कि यह एक अच्छा वास्तुकला है, और आप कर रहे हैं सही डीबी अपने टोंटी है। हालांकि डिजाइन लचीला है पर्याप्त आप डाटाबेस में इनपुट की मात्रा को नियंत्रित कर सकते हैं।

मेरे पास है और नोड्स काम करता है भर में बहु सूत्रण। मैं पूरी तरह सुनिश्चित करें कि Haddoop, या अन्य वितरित प्रसंस्करण प्रणाली आप, और अधिक तो क्या आपके पास पहले से दे देंगे अपने बस कर आई / ओ एक डेटाबेस के लिए के बाद से नहीं कर रहा हूँ।

मैं केंद्रीकृत प्रवेश के लिए JMS कतार का उपयोग कर कुछ simliar को क्रियान्वित किया है, और यह कोड तो डिस्क पर लॉग लिखने के लिए कम प्रभाव के साथ बहुत अच्छी तरह से काम किया। मुझे लगता है कि यह अच्छी तरह से आपके आवेदन के लिए काम करेंगे।

10/04/2012 को 23:02
का स्रोत उपयोगकर्ता

वोट
0

आप पहले से ही स्प्रिंग / जावा ईई का उपयोग कर रहे हैं, तो यह आपके "सहमति वास्तुकला" के लिए एक समाधान के रूप में वसंत बैच लागू करने के लिए केवल प्राकृतिक है।

बल्ले का सही दो लाभ:

  1. वसंत बैच (2.0 से शुरू) विभाजन को लागू करता है, इसका मतलब है कि ढांचा अलग विभाजन कदम (में आप के लिए विभाजन डेटा का ख्याल रखना होगा StepExecution), और एक से अधिक थ्रेड या अन्य वितरण प्रणाली (के लिए इन चरणों का वास्तविक निष्पादन सौंपने PartitionHandlers, जैसे TaskExecutorPartitionHandlerया करने के लिए अधिक वितरित किया MessageChannelPartitionHandler, आदि ..)

  2. स्प्रिंग एक्सएमएल + वसंत बैच से निपटने के लिए एक अच्छा OXM पैकेज है एक है StaxEventItemReaderजो प्रसंस्करण के लिए रिकॉर्ड के अनुरूप होता है कि इनपुट XML दस्तावेजों से टुकड़े के अर्क

वसंत बैच आज़मा कर देखें। मुझे पता है कि आप किसी भी प्रश्न हैं, मैं मदद करने में खुशी होगी करते हैं।

EDIT:

इसके अलावा को देखने Scala/AKKA Actorsऔर / या Scala parallel collections। यदि आपका काम sharded होने के लिए लागू होता है / विभाजित / वितरित क्या अभिनेता मॉडल के लिए है => कि।

यदि आप एक गैर JVM समाधान पर विचार करना चाहते हैं, तो पर एक नज़र डालें Erlang OTP=> सरल और सुरुचिपूर्ण।

17/11/2009 को 13:00
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more