Routing "przechodzący" przez kilka mikroserwisów

0

Witam do tej pory pracowałem głównie z monolitami i chciałem spróbować zrobić aplikację w architekturze mikroserwisów, na razie coś prostego dla siebie, żeby w ogóle zobaczyć jak to wygląda na żywo. Już pojawiają się pierwsze problemy a mianowicie jak poradzić sobie z zapytaniami do takiego API, które muszą przejść przez kilka mikroserwisów?
Np.: użytkownik chce wysłać wiadomość, wysyła request do API (treść + id odbiorcy) i teraz dobrze by było sprawdzić czy osoba wysyłająca taki request jest zalogowana i tutaj pytanie jak to najlepiej zrobić?
Obecnie mam 2 pomysły, albo budować adres do zapytania zgodny z kolejnością mikroserwisów, przez które ma przechodzić zapytanie, w w.w przykładzie było by \user\message a w POST tablica actions z odpowiednimi akcjami do wywołania dla poszczególnych elementów URL'a, albo na sztywno w serwisie message sprawdzanie czy użytkownik jest zalogowany, poprzez wysłanie zapytania na mikroserwis od obsługi użytkowników.

Do zrobienia API używam Symfony4 i prostego gateway na node.js, front na Vue.

0

nie wydaje mi się to zbyt optymalnym rozwiązaniem. My u nas w firmie wykorzystujemy GraphQL, do którego użytkownik uderza a ten pod spodem zbiera niezbędne dane z X mikroserwisów i serwuje wynik.
Twój pomysł, wg mnie, okaże się za mało elastyczne przy większej ilości mikroserwisów, bo kombinacji zrobi się za dużo.

0

Hej,
aby próbować optymalizować ilość zapytań warto może odpytywać zgodnie ze statystyką logów na mikroserwisach... czyli zaczynamy zapytanie od mikroserwisu na którym dany delikwent się najczęściej loguje... może też warto zrobić sobie strukturę grafową mikroserwisów, jeżeli jest między nimi jakaś zależność... itd...

1 użytkowników online, w tym zalogowanych: 0, gości: 1