वर्तमान में मेरे पास दो माइक्रोसर्विसेज हैं। हम उन्हें फोन करता हूँ Aऔर B।
Microservice के तहत डेटाबेस Aमें निम्नलिखित तालिका है:
A
|-- users
Microservice के तहत डेटाबेस Bमें निम्नलिखित तालिका है:
B
|-- trackers
आवश्यकताएं बताई गई हैं usersऔर trackersजिनके कई-कई संबंध हैं।
मुझे यकीन नहीं है कि यह कैसे एक microservices वास्तुकला के भीतर ठीक से संभाल करने के लिए है।
मैं इस काम को तीन तरीकों से देख सकता था:
- एक
user_trackersतालिका को माइक्रोसर्विस में जोड़ा जाता हैA। यह "विदेशी कुंजियों" से युक्त एक सम्मिलित तालिका के समान हैusersऔरtrackers। - एक
ownersतालिका को माइक्रोसर्विस में जोड़ा जाता हैB। यह तालिका एक पॉलीमॉर्फिक जॉइन टेबल के समान कार्य करती है। यह किसी भी सेवा को ट्रैकर के साथ जुड़ाव बनाने की अनुमति देगा। यह कुछ इस तरह लग सकता है:B |-- trackers |-- owners |-- owner_id |-- owner_type |-- tracker_id - के लिए रिकॉर्ड रखें
usersऔरtrackersप्रत्येक microservice में। उन्हें किसी प्रकार के पबसूब सिस्टम के साथ सिंक में रखें।
मैं मूल रूप से विकल्प 2 के साथ जाने वाला था क्योंकि मुझे पसंद था कि यह लेनदेन सीमाओं को संरक्षित रखे। मैं एक ट्रैकर बना सकता हूं और इसे परमाणु रूप से कुछ के साथ जोड़ सकता हूं। हालांकि, यह माइक्रोसॉर्स्क के लिए गुंजाइश से बाहर लगता है B। माइक्रोसर्विस को इस बात की Bपरवाह क्यों करनी चाहिए कि माइक्रोसॉर्फ़ Aएसोसिएशन बनाना चाहता है?
मुझे लगता है कि शायद यहाँ एक अच्छा पैटर्न है जिसके बारे में मुझे जानकारी नहीं है। मेरे द्वारा निर्धारित विकल्पों में से कोई एक अर्थ है? क्या कोई और विकल्प है जो अधिक समझ में आ सकता है?