2013-01-02 34 views
5

मैं नोड से दंगा में घटनाओं की सदस्यता लेने के लिए एक प्रभावी तरीका ढूंढ रहा हूं। मैं दंगा से एक प्रविष्टि में बदलाव की अधिसूचित होने में सक्षम होना चाहता हूं।डेटाबेस परिवर्तनों पर अधिसूचनाएं प्राप्त करना: क्या दंगा में प्रविष्टियां देखना संभव है?

उदाहरण के लिए जब एक node.js सर्वर एक प्रविष्टि को अद्यतन करता है, तो उस प्रविष्टि का उपयोग करके और देखकर कोई अन्य सर्वर अद्यतन प्रविष्टि या स्वचालित रूप से इसके अपडेट के बारे में अधिसूचना प्राप्त करता है।

यदि यह असंभव है तो क्या एक कुशल संदेश प्रणाली है जिसे कुशलतापूर्वक node.js सर्वर पर उपयोग किया जा सकता है?

उत्तर

5

रीक लागू करता है जिसे Pre and Post commit hooks कहा जाता है। पोस्ट-कॉमिट्स, जो एक लेखन सफलतापूर्वक होता है (और संभवतः आप जो चाहते हैं) ट्रिगर किया जाएगा केवल इरलांग कोड में लिखा जा सकता है और रीक को उचित बाल्टी पर एक संपत्ति के रूप में अपने कस्टम एरलांग फ़ंक्शन को ट्रिगर करने के लिए कॉन्फ़िगर करने की आवश्यकता है।

आपकी आवश्यकताओं और आपके आवेदन के पैमाने के आधार पर, आपके एरोडैंग सेटअप के लिए आपके Node.js सर्वर को सूचित करने के लिए कई विकल्प हो सकते हैं। यह एक एरलांग फ़ंक्शन लिखना अपेक्षाकृत आसान होगा जो आपके Node.js सर्वर पर HTTP अनुरोध भेजेगा, लेकिन इसमें बहुत अधिक ओवरहेड होता है, जो आपके एप्लिकेशन के लिए बहुत अनुचित हो सकता है। बहुत बेहतर, लेकिन थोड़ा अधिक जटिल, Redis या ZeroMQ (बस एक जोड़े को नाम देने के लिए) की पेशकश की गई पब/उप प्रणाली का उपयोग करना होगा, जो कि युद्ध-परीक्षण हैं और भारी भार के तहत बहुत अच्छा प्रदर्शन करने के लिए साबित हुए हैं। यदि आप ज़ीरोएमक्यू के साथ जाना चाहते हैं, तो बहुत विश्वसनीय पब/उप को कार्यान्वित करने के तरीके पर this guide देखें।

इन दोनों संदेश उपकरण, साथ ही साथ कई अन्य, आपके नोड.जेएस उदाहरण को रीक या नोड.जेएस उदाहरण से देखे गए प्रविष्टियों के अपडेट के अधिसूचना को सूचित कर सकते हैं जो डेटा को प्रभावी रूप से संशोधित कर रहा है। दूसरा विकल्प (Node.js से Node.js) आसान हो सकता है क्योंकि यदि आप इससे परिचित नहीं हैं तो आपको एर्लांग सीखने की आवश्यकता नहीं होगी।

और तुम बाहर पोस्ट के रूप में Riak के भीतर से सूचना भेजने के लिए उन्हें इस्तेमाल करने थे: ये दोनों टूल Node.js पुस्तकालयों है कि बहुत अच्छी तरह से जांच की जाती है है हुक के लिए प्रतिबद्ध है, यहाँ इसी erlang ड्राइवरों हैं:

+0

मुझे लगता है कि शून्य में जेरोएमक्यू नोड.जेएस उदाहरण मेरे लिए जाने का तरीका नहीं है। कम से कम वर्तमान परियोजना के लिए नहीं। मैं प्री/पोस्ट प्रतिबद्ध हुक पर एक नज़र डालेगा और यह वहां आसानी से आ सकता है। धन्यवाद! – Coyote

+0

यदि वह उत्तर वह है जिसे आप ढूंढ रहे थे, तो आपको इसे इस तरह चिह्नित करना चाहिए! – matehat

+0

मैं करूँगा, मैं इस परियोजना को पकड़ने के लिए एक बड़े पैमाने पर इसे आजमाने की प्रतीक्षा कर रहा हूं। – Coyote