Wpis z mikrobloga

#programowanie #mikroserwisy
Ogólnie mirki mam pytanie. Tyle się mówi, że mikroserwis powinien być niezależny itp itd. To ja się zastanawiam jak mój mikroserwis, który dajmy na to pobiera dane z zewnetrznych api i zapisuje je do bazy ma być niezależny? Jeśli używam do tego bazy relacyjnej to w przypadku kiedy w odpowiedzi z api coś się zmieni i bedzie to wymagało zmian w bazie danych to te zmiany bede musiał również zaadaptować w serwisie który odczytuje dane z bazy i je przetwarza. W ten sposób oba te serwisy są od siebie zależne. Jak więc w takim przypadku uzyskać niezależność? Powiedzmy że mam dwa mikroserwisy i jeden pobiera dane i je zapisuje gdzieś a drugi odczytuje dane i je przetwarza
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

zaadaptować w serwisie który odczytuje dane z bazy i je przetwarza.


@ireneusz-piontek: tak się nie robi. Jedna baza jest używana tylko przez jeden serwis. Wszystkie operacje zapisu/odczytu idą przez ten serwis
  • Odpowiedz
@Proogramista: No zakladam ze jak trzeba cos w bazie zmienic to zmienia sie model w obu serwisach
@Saly: czyli jak sie coś zmienić w bazie i modelu to serwis zapisujacy w bazie zmienia model requestu i kazdy serwis musi zmienic model requestu czyli sa zalezne
@Proogramista: j/w jak cos sie zmieni w bazie to i tak trzeba zrobic zmiany w obu serwisach
  • Odpowiedz
czyli jak sie coś zmienić w bazie i modelu to serwis zapisujacy w bazie zmienia model requestu i kazdy serwis musi zmienic model requestu czyli sa zalezne


@ireneusz-piontek: serwis A zmienia model bazy, swoją logikę i model requestu/responsu. Nie zmienia to faktu, że jak chcesz mieć mikroserwisy to model requestu/responsu musi być robiony z głową. Przy normalnych podejściu zmiany w modelu muszą być elastyczne. W taki sposób, że serwisy odpytujące
  • Odpowiedz
Ogólnie mirki mam pytanie. Tyle się mówi, że mikroserwis powinien być niezależny itp itd. To ja się zastanawiam jak mój mikroserwis, który dajmy na to pobiera dane z zewnetrznych api i zapisuje je do bazy ma być niezależny? Jeśli używam do tego bazy relacyjnej to w przypadku kiedy w odpowiedzi z api coś się zmieni i bedzie to wymagało zmian w bazie danych to te zmiany bede musiał również zaadaptować w serwisie
  • Odpowiedz
@ireneusz-piontek:

Jak więc w takim przypadku uzyskać niezależność?


Nie uzyskasz. Te dwa mikroserwisy są ze sobą powiązane przez wspólną bazę danych i co za tym idzie współdzielą model danych, więc jak coś zmienisz w A to musisz zrobić zmianę w B. Jak już wyżej mirki napisały, w architekturach mikroserwisowych stosuje się podejście baza per usługa, gdzie każdy serwis ma swoją bazę danych. Prowadzi to oczywiście do duplikacji danych, bo przykładowo informacje o kliencie będą znajdować się w kilku miejscach jak usługa fakturowania, płatności, zamówienia, ale jest to cena jaką się płaci za uniezależnienie modelu danych jednej usługi od
  • Odpowiedz