ฉันมีไมโครไซต์สองรายการ เราจะเรียกพวกเขาและAB
ฐานข้อมูลภายใต้ microservice Aมีตารางต่อไปนี้:
A
|-- users
ฐานข้อมูลภายใต้ microservice Bมีตารางต่อไปนี้:
B
|-- trackers
ข้อกำหนดระบุว่าusersและtrackersมีความสัมพันธ์แบบกลุ่มต่อกลุ่ม
ฉันไม่แน่ใจว่าจะจัดการสิ่งนี้ภายในสถาปัตยกรรม microservices อย่างไร
ฉันเห็นการทำงานนี้หนึ่งในสามวิธี:
user_trackersตารางจะถูกเพิ่มAMICROSERVICE นี้ทำหน้าที่คล้ายกับตารางเข้าร่วมประกอบด้วย "คีย์ต่างประเทศ" เพื่อและuserstrackersownersตารางจะถูกเพิ่มBMICROSERVICE ตารางนี้ทำหน้าที่คล้ายกับตารางเข้าร่วม polymorphic นี่จะทำให้บริการใด ๆ สร้างการเชื่อมโยงกับตัวติดตาม สิ่งนี้อาจมีลักษณะเช่นนี้:B |-- trackers |-- owners |-- owner_id |-- owner_type |-- tracker_id- เก็บบันทึกสำหรับ
usersและtrackersในแต่ละบริการไมโคร ทำให้พวกเขาซิงค์กับระบบ pubsub บางประเภท
เดิมฉันจะไปกับตัวเลือก 2 เพราะฉันชอบที่มันรักษาขอบเขตการทำธุรกรรม ฉันสามารถสร้างตัวติดตามและเชื่อมโยงกับสิ่งที่เป็นอะตอม แต่ดูเหมือนว่าออกจากขอบเขตสำหรับ BMICROSERVICE เหตุใดจึงควรBดูแลไมโครบริการที่ไมโครเซอร์วิสAต้องการสร้างการเชื่อมโยง
ฉันรู้สึกว่าอาจมีรูปแบบที่ดีที่ฉันไม่ทราบ ตัวเลือกใด ๆ ที่ฉันวางไว้เหมาะสมหรือไม่ มีตัวเลือกอื่นที่เหมาะสมกว่าหรือไม่