Şu anda iki mikro hizmetim var. Onları arayacağız Ave B.
Mikro hizmet altındaki veritabanı Aaşağıdaki tabloya sahiptir:
A
|-- users
Mikro hizmet altındaki veritabanı Başağıdaki tabloya sahiptir:
B
|-- trackers
Gereksinimler bunu belirtir usersve trackersçoktan çoğa bir ilişkiye sahiptir.
Bunu bir mikro hizmet mimarisi içinde nasıl düzgün bir şekilde ele alacağımdan emin değilim.
Bunun üç şekilde çalıştığını görebiliyordum:
user_trackersMikro hizmete bir tablo eklenirA. Bu,usersve öğelerine "yabancı anahtarlar" içeren bir birleştirme tablosuna benzer şekilde davranırtrackers.ownersMikro hizmete bir tablo eklenirB. Bu tablo, polimorfik birleştirme tablosuna benzer şekilde hareket eder. Bu, herhangi bir hizmetin bir izleyici ile ilişkilendirme yapmasına izin verir. Bu şöyle görünebilir:B |-- trackers |-- owners |-- owner_id |-- owner_type |-- tracker_id- Her mikro hizmet için
usersvetrackersher bir mikro servis için kayıt tutun . Bir çeşit pubsub sistemi ile senkronize halde tutun.
Başlangıçta seçenek 2 ile gidecektim çünkü işlem sınırlarını korumayı sevdim. Bir izleyici oluşturabilir ve atomik bir şeyle ilişkilendirebilirim. Ancak, mikro hizmet kapsamı dışında görünüyor B. Mikro Bhizmet neden mikro hizmetin Abir ilişki oluşturmak istediğine dikkat etmelidir ?
Burada farkında olmadığım muhtemelen iyi bir model olduğunu hissediyorum. Ortaya koyduğum seçeneklerden herhangi biri anlamlı mı? Daha anlamlı olabilecek başka bir seçenek var mı?