2016-10-06 32 views
8

के साथ फ्रंट एंड "माइक्रो सर्विसेज" मैं एक अजीब स्थिति के लिए एक समाधान की तलाश में हूं। आइए कोणीय 2-बीज परियोजना पर एक त्वरित नज़र डालें ताकि मैं बेहतर समझा सकूं: https://github.com/mgechev/angular2-seed/tree/master/src/client/appकोणीय 2

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

यहां कुछ समाधान पहले से ही पता लगाया है, लेकिन मैं के साथ वास्तव में खुश नहीं हूँ:

  • घर के लिए पूरी तरह से अलग अनुप्रयोगों है/के बारे में (मेरी आँखों में, यह एक स्पा के अनेक लाभ समाप्त)।
  • प्रत्येक मॉड्यूल (लगभग, घर, साझा) अपने स्वयं के एनपीएम पैकेज में रोल करें। जब हम तैनात होते हैं, तो हमारे पास इन मॉड्यूल के लिए सभी प्रकाशित एनपीएम पैकेजों में खींचने के लिए कुछ तरीका होगा।
+0

आपका प्रश्न क्या है, बिल्कुल? 'About' और' home' मॉड्यूल कितने अलग हैं? – KTCO

+0

@ केटीसीओ जो कि मुझे अभी भी पता लगाने की आवश्यकता है, जो अंतिम समाधान में बंधेगा। व्यवसाय एक दूसरे से स्वतंत्र रूप से आवेदन के भीतर नई सुविधाओं को जारी करने में सक्षम होना चाहता है, बल्कि पूरे एप्लिकेशन को एक बार में जारी करना चाहता है। चूंकि कार्यक्षमता के प्रत्येक टुकड़े का स्वामित्व/एक अलग टीम द्वारा किया जाएगा, वे टीम ए को टीम बी को प्रभावित किए बिना अपना नया कोड जारी करने में सक्षम होना चाहते हैं। जैसा कि शीर्षक में बताया गया है, वे वास्तव में सामने के अंत में एक "माइक्रो सेवा" वास्तुकला प्राप्त करना चाहते हैं। – SpareWalrus

+0

@ केटीसीओ जबकि मेरे पास फ्रंट एंड पर इस विधि के बारे में मेरा आरक्षण है, लेकिन मैं कम से कम कहने से पहले विकल्पों को कम से कम एक्सप्लोर करना चाहता हूं। – SpareWalrus

उत्तर

5

आर्केस्ट्रा:

प्रत्येक टीम एक घटक पुस्तकालय (NPM) का निर्माण और एक भी कोणीय 2 आवेदन में उन खींच लो। इस तरह, टीम microservices principles का उपयोग कर विकसित कर सकती हैं, लेकिन आप एक एसपीए मोनोलिथ तैनात कर सकते हैं जो जटिलता को कम कर देता है।

बड़े घटक पुस्तकालयों कई बंडलों और मॉड्यूल, ताकि आप में खींच के बारे में चयनात्मक हो सकता है होना चाहिए

microservices के बीच

संचार:।

यदि आवश्यक हो, घटक पुस्तकालयों एक पीठ पर संवाद कर सकते हैं अंत संदेश बस।

यदि घटक पुस्तकालयों के बीच प्रत्यक्ष क्लाइंट-साइड एकीकरण की आवश्यकता है, तो आपको एक तीसरी घटक लाइब्रेरी की आवश्यकता है जो about और home पर निर्भर करता है, जिसमें हल्के वजन इंजेक्शन योग्य संदेश/ईवेंट सेवा होती है। आप RxJS Subjects का उपयोग कर उस सेवा को कार्यान्वित कर सकते हैं।