वर्तमान में मेरे पास दो माइक्रोसर्विसेज हैं। हम उन्हें फोन करता हूँ 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
एसोसिएशन बनाना चाहता है?
मुझे लगता है कि शायद यहाँ एक अच्छा पैटर्न है जिसके बारे में मुझे जानकारी नहीं है। मेरे द्वारा निर्धारित विकल्पों में से कोई एक अर्थ है? क्या कोई और विकल्प है जो अधिक समझ में आ सकता है?