2016-04-14 7 views
5

मैं लोचदार खोज और इसकी स्केलिंग के लिए बहुत नया हूं, और मुझे एक सवाल है कि मुझे यह नहीं पता कि कैसे पहुंचे।माइक्रोस्कोविसेज से डेटा प्रोसेसिंग के लिए Elasticsearch सर्वर स्थापित करना

वहाँ रेल microservice अनुप्रयोगों के साथ कई सर्वरों कर रहे हैं:

यहाँ की स्थिति है। उनमें से प्रत्येक को अपने स्वयं के डेटा का एक बड़ा हिस्सा मिल रहा है (अधिक विशेष रूप से, विभिन्न सामाजिक नेटवर्क से पोस्ट एकत्र करना - इसलिए सभी डेटाबेस में अनुक्रमण योग्य खोज फ़ील्ड समान हैं)।

मुझे ऐसे समाधान को खोजने की ज़रूरत है जो वर्तमान में मौजूद डेटा को रखने की अनुमति दे और इस खोज सर्वर पर संबंधित संबंधित रेल ऐप्स के बिना कई डेटाबेस के माध्यम से खोज करने के लिए विशेष रूप से समर्पित एक लोचदार सर्वर स्थापित कर सके। इसका संभावित अर्थ यह है कि प्रत्येक अन्य सर्वर पर ईएस सेट करना, खोज पैटर्न को परिभाषित करना, लेकिन एक पूरी तरह से अलग सर्वर पर एकाधिक-मॉडल खोज बनाना।

इन कुशलताओं का अंतिम लक्ष्य संपूर्ण ActiveRecord ऑब्जेक्ट्स/या सभी संबंधित विशेषताओं को मुख्य एप्लिकेशन में भेजना चाहिए।

क्या यह हासिल करना भी संभव है? शायद किसी को भी ऐसी ही समस्या है?

मैं इसके साथ शुरू करने के बारे में थोड़ा खो गया हूं।

उत्तर

3

यह प्रश्न थोड़ा बड़ा है, लेकिन मुझे लगता है कि मैं आपको समझने के लिए सही दिशा में कम से कम इंगित कर सकता हूं। सबसे पहले, मुझे अपनी समस्या बताते हुए शुरू करें क्योंकि मैं इसे समझता हूं।

आपके पास प्रत्येक के अपने माइक्रोस्कोस द्वारा पॉप्युलेट किए गए कई डेटाबेस हैं। प्रत्येक डेटाबेस में ऐसी ही जानकारी होती है जिसे आप खोजना चाहते हैं (यानी लेखक, शरीर, शीर्षक इत्यादि) आप एक लोचदार खोज क्लस्टर चाहते हैं जिसके पास उन सभी डेटाबेस में डेटा तक पहुंच हो और परिणाम न लौटा सकें जिसमें सही शामिल है डेटाबेस और दस्तावेज़ जो एक खोज से मेल खाता है।

इस तरह के जटिल मामलों को संभालने की बात आने पर लोचदार खोज बहुत शक्तिशाली है। चूंकि आपके सभी डेटा में एक समान संरचना और फ़ील्ड हैं, इसलिए आप उस पर अतिरिक्त फ़ील्ड के साथ एक इंडेक्स का उपयोग कर सकते हैं ताकि यह पता लगाया जा सके कि कौन सा डीबी दस्तावेज़ आता है और उस डीबी से दस्तावेज़ आईडी। यह आपको 'इन 3 सोशल नेटवर्क्स में विलियम शेटनर द्वारा बनाई गई हर पोस्ट' जैसी खोज करने की अनुमति देगा।

आपको यह काम करने के लिए कार्यक्षमता के कई अतिरिक्त टुकड़े की आवश्यकता होगी। सबसे पहले, आपको डेटाबेस से डेटा को खोज अनुक्रमणिका में प्राप्त करने के लिए एक तंत्र की आवश्यकता है। मेरी टीम पर, हम एक अलग इंडेक्सिंग सेवा का उपयोग करते हैं जो जानता है कि इवेंट स्ट्रीम कैसे पढ़ा जाए और लाइव डेटा को ईएस इंडेक्स में भेज दें। आपको केवल एक इंडेक्सिंग रणनीति पर निर्णय लेने की आवश्यकता है (यानी आप कितनी बार नई प्रविष्टियों के साथ इंडेक्स को अपडेट करते हैं?)। दूसरा, कच्चे खोज परिणाम लेने और डेटाबेस से प्रासंगिक प्रविष्टि को पुनर्प्राप्त करने के लिए आपको क्लाइंट पक्ष पर कुछ तर्क की आवश्यकता होगी।

यह आपकी समस्या का समाधान करने का एकमात्र तरीका है। यदि आप इसके बजाय एक दृष्टिकोण चाहते हैं जो आपको प्रत्येक सोशल नेटवर्क के लिए एक अलग इंडेक्स बनाए रखने की अनुमति देता है, लेकिन फिर भी एक केंद्रीय स्थान है जहां आप उन सभी को खोज सकते हैं जो मैं सुझाव देता हूं कि मैं एलैस्टिकसेर्च जनजाति नोड्स का उपयोग करने की सलाह देता हूं। असल में, यह एक खोज सबमिट करने के लिए एक ही जगह है जो प्रत्येक खोज क्लस्टर के बारे में जानता है और एक एकीकृत खोज परिणाम वापस करने के लिए उनके साथ कैसे बातचीत करें।

लोचदार खोज सीखने का सबसे अच्छा तरीका केवल क्लस्टर अप करना और चलाना और प्रयोग करना शुरू करना है! सौभाग्य!

+0

धन्यवाद @ क्रिस-फ्रैंकलिन, यह बिल्कुल समस्या है।क्या इंडेक्सिंग सेवा आप एक अलग ऐप का जिक्र करते हैं जो सभी बाहरी डेटाबेस को अनुक्रमणित करती है और फिर खोज करती है? – marinados

+0

स्वयं मैं एक खोज ऐप बनाने के बारे में सोच रहा था जो एकाधिक रिमोट डीबी को इंगित करता है, उन सभी को अनुक्रमित करता है, एक बहु-मॉडल खोज करता है और एक एपीआई के माध्यम से सब कुछ देता है। क्या यह एक बुरी रणनीति है? और मैं जनजाति नोड्स में देखूंगा, जो आशाजनक लगता है! – marinados

+0

हमारी अनुक्रमण सेवा हमारे वास्तुकला में एक और माइक्रोस्कोयर है। यह Elasticsearch में डेटा shoving संभालती है। हमारे पास एक अलग माइक्रोस्कोस है जो खोज क्वेरी का निर्माण करती है, उन्हें ईएस पर सबमिट करती है और फिर परिणाम को हमारे यूआई आसानी से उपयोग कर सकते हैं। आपकी ज़रूरतें सीधे प्रभावित होंगी कि इस आर्किटेक्चर को कितना जटिल होना चाहिए। हमारी जरूरतों का मतलब है कि प्रत्येक चरण को संभालने के लिए हमें अलग-अलग स्केलेबल सेवाओं की आवश्यकता है। –

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