Witaj!
cerrato dodał nowy post w wątku: Dane z innego mikroserwisu w widoku
Tylko w przypadku snapshota masz kwestię jego aktualności. Albo zakładasz, że jest odświeżany co jakiś czas i bierzesz na klatę, że mogą się pojawić lekkie rozjazdy, albo robisz na bieżąco aktualizowanie przy każdej zmianie. Ale to po pierwsze - może się rozjechać, jeśli komunikacja padnie, albo drugi mikroserwis się wyłoży, to jedziesz na kopii, która może być niekatualna. A po drugie - wtedy wymaga każda zmiana przesłania info o aktualizacji. I teraz masz do zastanowienia się (nie znam twojego scenariusza, więc ciężko jednoznacznie ocenić) co jest większym problemem/kompiikacją/generuje większe obciążenie - czasami odpytanie drugiego serwisu o dane użytkownika (albo inne dane, które będą potrzebne) czy częste przesyłanie notyfikacji o zmianie/aktualizowanie i synchronizowanie baz między sobą. Pytanie jest takie - co się dzieje częściej oraz która operacja jest bardziej obciążająca. My tego nie wiemy, więc ciężko jest to ocenić. Jeszcze przyszła mi do głowy inna opcja - to, co ma być wspólne, trzymać w osobnym serwisie. Wtedy nie trzeba niczego synchronizować: serwis A ma dane (np. o zamówieniach), serwis B ma inne (np. dot. płatności), a dane wspólne trzymamy w serwisie C. Tylko w takim rozwiązaniu to w wypadku padnięcia C, A i B także leżą. Tak czy siak - nie znając szczegółów, ciężko coś więcej sensownego powiedzieć. Aczkolwiek w kontekście mikroserwisów niekoniecznie to jest dobra porada, bo tutaj priorytetem jest ich niezależność i samodzielność, także raczej bym szedł w trzymanie kopii danych z serwisu A na B oraz jakiś sensowny system synchronizacji/powiadomień o zmianach tych danych i ewentualnie plan awaryjny w wypadku niedostępności serwisu A. Nie wiem na ile to sa kluczowe dane, czy jeśli podstawisz coś nieaktualnego to będzie problem. W sensie - czy w razie braku możliwości komunikacji, lepszą opcją jest wstawienie danych, których nie jesteś na 100% pewien, czy wstrzymanie się z działaniem i np. pokazanie informacji że chwilowo mamy przerwę techniczną albo coś w tym stylu.
Z poważaniem, 4programmers.net
|