java.net से java.nio में स्विच करना बेहतर है? .NET (माइक्रोसॉफ्ट इकाई नहीं) समझना आसान है और अधिक परिचित है, जबकि एनओओ स्केलेबल है, और कुछ अतिरिक्त निफ्टी सुविधाओं के साथ आता है।java.net बनाम java.nio
विशेष रूप से, मुझे इस स्थिति के लिए एक विकल्प बनाने की आवश्यकता है: हमारे पास कई दूरस्थ साइटों पर हार्डवेयर का प्रबंधन करने वाला एक नियंत्रण केंद्र है (प्रत्येक साइट एक कंप्यूटर के साथ कई हार्डवेयर इकाइयों (एक ट्रांसीवर, टीएनसी, और रोटेटर) का प्रबंधन करती है)। मेरा विचार था कि प्रत्येक मशीन पर एक सेवर ऐप लिखना जो नियंत्रण केंद्र से गेटवे के रूप में कार्य करता है, प्रत्येक हार्डवेयर के लिए एक सॉकेट के साथ। मेरी समझ से, एनआईओ एक सर्वर, कई ग्राहकों के लिए है, लेकिन जो मैं सोच रहा हूं वह एक ग्राहक है, कई सर्वर।
मुझे लगता है कि एक तीसरा विकल्प MINA का उपयोग करना है, लेकिन मुझे यकीन नहीं है कि यह एक साधारण समस्या पर बहुत अधिक फेंक रहा है या नहीं।
प्रत्येक दूरस्थ सर्वर को 8 कनेक्शन सभी एक ही ग्राहक से (सभी हार्डवेयर, और अलग TX/RX सॉकेट नियंत्रित करने के लिए) होगा,। हालांकि, एक ही ग्राहक कई सर्वरों से एक साथ कनेक्ट करना चाहता है। प्रत्येक सर्वर को विभिन्न बंदरगाहों पर डालने के बजाय, क्या क्लाइंट साइड पर चैनल चयनकर्ताओं का उपयोग करना संभव है, या क्या चीजों के क्लाइंट साइड पर बहु-थ्रेडेड io जाना बेहतर है और सर्वर को अलग-अलग कॉन्फ़िगर करना बेहतर है?
वास्तव में, के बाद से दूरस्थ मशीनों की सेवा ही अन्य हार्डवेयर के साथ बातचीत करने, RMI और आईडीएल/CORBA एक बेहतर समाधान हो सकता है? असल में, मैं सिर्फ आदेश भेजने और हार्डवेयर से टेलीमेट्री प्राप्त करने में सक्षम होना चाहता हूं, और इसे करने के लिए कुछ एप्लिकेशन लेयर प्रोटोकॉल बनाना नहीं है।
एक आधुनिक 64-बिट ओएस के साथ आप सैकड़ों हजार धागे प्राप्त कर सकते हैं। –
निश्चित रूप से, लेकिन यह आवश्यक नहीं है कि किसी एप्लिकेशन को आर्किटेक्ट करने का सबसे स्केलेबल तरीका हो। –
लेकिन एक सॉकेट एक धागे की तुलना में अधिक संसाधन गहन है ... – Zombies