2010-10-28 13 views
54

मैं एक नया सर्वर तैयार कर रहा हूं जिसे हजारों यूडीपी कनेक्शन (लगभग 100,000 सत्रों) का समर्थन करने की आवश्यकता है। कोई इनपुट या सुझाव जिस पर कोई उपयोग करना है?चयन बनाम मतदान बनाम एपोल

+1

आप किस पर हैं? अलग ओएस अलग विशिष्ट है। –

+0

लिनक्स रेडहाट एंटरप्राइज़ संस्करण 5 – ravi

+1

@ravi: आपको टर्नस्टेड जैसे ईवेंट-आधारित (एसिक्रोनस) फ्रेमवर्क की भी जांच करनी चाहिए, जहां आप अपना सर्वर लिख सकते हैं और विभिन्न मतदान विधियों के साथ इसका परीक्षण कर सकते हैं: [TwistedMatrix.com: एक रिएक्टर चुनना] (http : //twistedmatrix.com/documents/current/core/howto/choosing-reactor.html) –

उत्तर

17

लिनक्स: epoll फ्रीबीएसडी: kqueue विंडोज़: ??

रैपर लाइब्रेरीज़ हैं, जैसे कि libevent और libev, जो आपके लिए यह सार कर सकते हैं।

+4

+ Libev पर 1, यह कमाल है! – dcolish

+13

विंडोज़: आईओ प्राप्ति पोर्ट – kibab

+6

और वैसे भी। आईओसीपी: विंडोज एनटी 3.5, 1 99 4; Kqueue: बीएसडी 4.1, 2000; एपोल: लिनक्स कर्नेल 2.5.44, 2002. – Soonts

37

यदि आप लिनक्स का उपयोग कर रहे हैं तो उत्तर एपोल है, यदि आप फ्रीबीएसडी या मैक ओएस एक्स का उपयोग कर रहे हैं, और यदि आप विंडोज़ पर हैं तो I/O पूर्णता बंदरगाहों का उपयोग कर रहे हैं।

कुछ अतिरिक्त चीजें आप करेंगे (लगभग निश्चित रूप से) अनुसंधान करना चाहते हैं:

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

इसके अतिरिक्त, यह महत्वपूर्ण ध्यान देने के लिए है यूडीपी में टीसीपी के विपरीत "कनेक्शन" नहीं है। डिबगिंग नेटवर्क-आधारित समाधान चुनौतीपूर्ण हो सकता है क्योंकि यह छोटे और बड़े पैमाने पर शुरू करने के लिए आपकी सबसे अच्छी रुचि में भी होगा।

+5

प्रतिक्रिया के लिए धन्यवाद। मैं समझता हूं कि यूडीपी कनेक्शन नामक ऐसी कोई चीज़ नहीं है क्योंकि यह एक कनेक्शन रहित उन्मुख संचार है। मेरे मन में जो एप्लिकेशन था, वह सत्र आधारित है, इसलिए सत्र के बजाय मैंने इसे कनेक्शन के रूप में वर्णित किया। मेरी गलती। मल्टीथ्रेडेड एप्लिकेशन के साथ चयन के आधार पर मैंने 200,000 से अधिक सत्रों की कोशिश की है। बस अनुकूलित करना चाहता था। स्केलेबल आर्किटेक्चर समाधान बनाने के लिए भी नया नहीं है। लोड संतुलन सर्वर के प्रकार के लिए अच्छा फिट नहीं हो सकता है Iam। यह निश्चित रूप से एक बहुप्रचार नेटवर्किंग है। शायद कुछ प्रकार के निर्माता/उपभोक्ता पैटर्न का उपयोग करेंगे। – ravi

40

कर्ल के लेखक ने poll vs select vs event libraries पर एक अद्भुत लेख लिखा।

+5

उस गाइड ने बिल्कुल मदद नहीं की। यह मूल रूप से माना जाता है कि सभी को तीनों के बीच मुख्य अंतर पता था। – enigmaticPhysicist

+3

कृपया कम से कम एक सारांश प्रदान करें और न केवल एक नंगे लिंक – MikeMB

+0

@enigmaticPhysicist - मैं आपसे सहमत हूं। मैंने इस लेख को और अधिक विस्तृत पाया है, उम्मीद है कि यह मदद करता है: https://www.ulduzsoft.com/2014/01/select-poll-epoll-practical-difference-for-system-architects/ –

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