2012-02-19 10 views
5

मैं वर्तमान में स्थिर वेब पृष्ठों की सेवा के लिए रेल का उपयोग कर रहा हूं और मैं अपने आवेदन के कुछ वास्तविक समय पहलू को संभालने के लिए नोडजेस के साथ प्रयोग कर रहा हूं।नोडजेस सर्वर और रेल के बीच संचार की संरचना कैसे करें?

मैं नोडजेस के बीच मेरे रेल सर्वर पर संचार करने में सक्षम हूं, नोडज एक डीबी और मेरे रेल सर्वर से पढ़ने के लिए लिखकर।

अब मैं दूसरी तरफ करना चाहता हूं, उर्फ ​​रेल में एक कार्रवाई नोडज में एक कार्रवाई को ट्रिगर करेगी। जाहिर है, मैं गूंगा हो सकता हूं और एक नोड लगातार डेटाबेस सर्वर मतदान कर रहा हूँ।

मेरे विकल्प क्या हैं?

  1. सेट अप दोनों
  2. के बीच RPC कॉल दोनों तरीकों से

वहाँ आसान/तेज विकल्प हैं सेट करें TCP सॉकेट?

उत्तर

3

खैर तकनीकी रूप से आप inter process communication के लिए तरीके का एक बहुत हो गया, मेरा मानना ​​है कि आप dnode पर एक नज़र जो TCP या नामित पाइपों पर आरपीसी प्रदान करता है होना चाहिए और यह एक ruby implementation है अगर आप कुछ आसान चाहते हैं। आरपीसी कॉल करने के लिए आपके लिए बहुत आसान बनाना और चूंकि यह टीसीपी है, आप इसे क्रॉस मशीनों का उपयोग कर सकते हैं।

आपके पास zeromq पर एक संदेश कतार भी हो सकती है, लेकिन मुझे विश्वास है कि अनावश्यक ओवरहेड होगा। यह उन मामलों के लिए अच्छा होगा कि आपके पास एक दूसरे से बात करने वाली दो से अधिक प्रक्रियाएं हैं।

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

यह करने के लिए:

+3

इसमें जोड़ने के लिए, ज़ीरोम पर विचार करें यदि आप एक पारिस्थितिक तंत्र चाहते हैं जहां इसे लैंगेज अज्ञेयवादी होना है - जहां विभिन्न भाषाओं में लिखी विभिन्न प्रक्रियाओं को एक दूसरे के साथ एक मानक प्रोटोकॉल पर संवाद करना है। यही जेरोमक प्रदान कर सकता है - संचार परत को सरल बनाएं और प्रक्रियाओं के लिए एक-दूसरे से बात करना वास्तव में आसान बनाएं। –

3

आप redis उपयोग कर रहे हैं, मैं हाल ही में एक redis_message_capsule लिखा था। इसे पसंद करने या इसे संशोधित करने के लिए स्वतंत्र महसूस करें।

+0

+1 यह वास्तव में एक साफ समाधान है। भयानक काम के लिए धन्यवाद। – lorefnon

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