मैं वास्तव में सूक्ष्मजीव आर्किटेक्चर से संबंधित लेखों के स्वर पढ़ रहा हूं, लेकिन ऐसा लगता है कि वे स्पष्टीकरण में गहराई से बिना सबसे आसान तरीके से काम कर रहे हैं।माइक्रोस्कोस, सेवा रजिस्ट्री, एपीआई गेटवे और डेटा शेयरिंग
आप मेरे सवालों की व्याख्या करने के लिए, मैं तुम्हें मेरे वास्तविक थोड़ा वास्तुकला दिखाएगा:
तो, यहाँ है कि मैं क्या उपयोग करना चाहते हैं। तकनीकी रूप से कुछ भी करने से पहले, मुझे और सैद्धांतिक सूचनाओं की आवश्यकता है। मेरे डोमेन
की
विवरण मैं कुछ मोबाइल और ब्राउज़र आधारित ग्राहक हैं, एक आवेदन पत्र पर खुद को कनेक्ट करने के लिए, अपने उपयोगकर्ता जानकारियां प्राप्त करने में सक्षम हैं और वे क्या खरीदा के बारे में बिलिंग जानकारियां परामर्श करने के लिए सक्षम।
एक अखंड आवेदन पर, मैं इस वास्तुकला का प्रयोग करेंगे: - मोबाइल के साथ प्रस्तुति परत/कोणीय-एंबर - अनुमापकता - एक मानक MySQL डेटाबेस साथ दाल - एक बाकी की कि सामने nginx साथ एपीआई के साथ बिजनेस परत केवल एक्स-अक्ष
पर लागू किया जाएगा, मैं इस मामले में एक माइक्रोस्कोस आर्किटेक्चर का उपयोग करना चाहता हूं, क्योंकि यह "डोमेन स्केलेबल" और वास्तव में लचीला है (और इसके बारे में कुछ और सीखने के लिए)।
स्कीमा पर, प्रत्येक सेवा में, संबंधित एपीआई द्वारा खुलासा केवल HTTP यूआरएल है।
प्रश्न
एक/ (1) प्रवाह में, "मोबाइल" http://myDomain.or/auth पर एक http अनुरोध भेजें।
मेरे दिमाग में, एपीआईजीएटीवे एक मानक सेवा रजिस्ट्री (यूरेका, चिड़ियाघर, या कुछ और) पूछने में सक्षम है, यह पता लगाने में सक्षम है कि क्या AuthSrv पहुंच योग्य है और अपने नेटवर्क पते को पुनर्प्राप्त कर सकता है। फिर ApiGateway AuthSrv का अनुरोध कर सकता है और सर्वर का जवाब दे सकता है
क्या यह काम करने का एक अच्छा तरीका है? डेटा तक पहुंचने के लिए एक्स मशीनों से निपटने पर कोई विलंबता समस्या नहीं है?
बी/ प्रवाह (2) सेवा रजिस्ट्री का समर्थन करता है। सेवा रजिस्ट्री कैसे समझ सकती है कि बच्चों/यूथ जैसे बच्चों/यूथ/अन्य (यदि इसे उजागर किया गया था) पर भी इस अनुरोध से संबंधित है, इस पते पर आईपी: पोर्ट?
सी/ प्रवाह (3) दिखा रहा है कि सेवा रजिस्ट्री के पास AuthSrv उपलब्ध है। (3 बीआईएस) दूसरे को दिखाता है: कोई ऑथआरआरवी उपलब्ध नहीं है। एक छोटे से आवेदन में, हम स्वीकार कर सकते हैं कि हम कभी-कभी निराशाजनकता खो देते हैं, लेकिन एक बड़ी प्रणाली में, जहां सौ सेवाओं को जोड़ा जाता है, हम सेवा की अक्षमता को कैसे नियंत्रित कर सकते हैं?
डी/ एक अन्य पोस्ट में, मैं एक बिलिंग जानकारी को स्टोर करने के लिए कह रहा था क्योंकि यह किसी उपयोगकर्ता से, किसी अन्य सेवा से और अन्य डेटाबेस से संबंधित है।
एक मानक वास्तुकला में मैं होगा:
{
billingInformations:{...},
billingUser:"/user/12365" // URL corresponding the the user Ressource in the other service
}
इस "साझा करने सेवा डेटा" को संभालने के लिए सबसे अच्छा तरीका है और नहीं:
{
billingInformations:{...},
billingUser:ObjectId("userId")
}
एक microservice वास्तुकला में, किसी को इस्तेमाल करने की सलाह सेवाओं को जोड़े?
ई/ मुझे इस विशिष्ट मामले में HTTP प्रोटोकॉल के बजाय AMQP प्रोटोकॉल का उपयोग करना कब चाहिए?
अग्रिम
उदाहरण के लिए Spotify Protobuf और ZeroMQ के संयोजन का उपयोग करता है। HTTP के माध्यम से एक संचार बहुत तेज हो गया। – Anatoly