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