स्थानीय आईपीसी संचार के लिए POSIX संदेश कतार या यूनिक्स डोमेन सॉकेट का उपयोग करना बेहतर है?स्थानीय आईपीसी, पॉज़िक्स संदेश कतार (mqueues) या यूनिक्स डोमेन (स्थानीय) सॉकेट के लिए कौन सा बेहतर है?
मैंने मशीनों (डोमेन नहीं) के बीच यूनिक्स सॉकेट के साथ काम किया है और मुझे याद है कि कनेक्शन बनाने और तोड़ने से सॉकेट्स अंततः दूर जाने से पहले थोड़ी देर तक रुक जाएंगे। इसके अलावा, अगर आप एक "विश्वसनीय" एक्सचेंज चाहते थे तो आपको या तो टीसीपी का उपयोग करना होगा या एसीके वापस करने के लिए एप्लिकेशन डिज़ाइन करना होगा। मुझे यकीन नहीं है कि यह यूनिक्स डोमेन सॉकेट पर भी लागू होता है।
मेरी वर्तमान परियोजना में हमें स्थानीय आईपीसी की आवश्यकता है। मेरी पहली प्रतिक्रिया POSIX MQueues का उपयोग करना था, क्योंकि मैंने उन्हें स्थानीय संदेश के लिए पहले उपयोग किया था। हालांकि, एक सहकर्मी इसके बजाय यूनिक्स डोमेन सॉकेट का सुझाव दे रहा है।
क्या एक दूसरे से बेहतर है, या यह प्रोग्रामिंग परिचितता का मामला है? या शायद यह बनाया जा रहा आवेदन पर निर्भर करता है?
एक बड़ी तस्वीर पर हम जिस क्लाइंट पर काम कर रहे हैं वह क्लाइंट/सर्वर मॉडल का पालन करता है। ग्राहक "कुछ करने" के लिए सर्वर को संदेश भेजते हैं। हालांकि, ग्राहक "इसकी पूर्ण" प्रतिक्रिया की प्रतीक्षा नहीं करता है - हालांकि वे जानना चाहते हैं कि उनका अनुरोध प्राप्त हुआ है या नहीं।
भेजने पक्ष के लिए बुनियादी तर्क है:
connect to server
send request
note if the send worked or not
disconnect from server
एक सर्वर से ग्राहकों के सैकड़ों हो सकता है।
हम लिनक्स ओएस चलाने वाले एक एसएमपी सिस्टम (4-8 कोर) पर निष्पादित कर रहे हैं।
अग्रिम धन्यवाद।
मैं कहूंगा ... dbus! – karlphillip