Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Komunikacja front/backend z mikroserwisami (RabbitMQ)
Forum PHP.pl > Forum > PHP
netir
Szukam informacji na temat komunikacji front/backend w mikroserwisach opartych o RabbitMQ, ale niestety bezskutecznie.

Załóżmy, że mam prostą strukturę:
- Front
- API Gateway
- Mikroserwisy: A, B, C które komunikują się asynchronicznie przy użyciu Rabbita.

Jak powinna wyglądać komunikacja Frontu z Backendem w przypadku potrzeby pobrania listy w postaci kompozycji danych z mikroserwisu A i B? Front powinien komunikować się w takiej sytuacji z API Gateway, a API Gateway synchronicznie pobierać dane z danego mikroserwisu poprzez wewnętrzne requesty? Czy może lepiej zrezygnować zupełnie z API Gateway i komunikować się bezpośrednio z danym mikroserwisem?

Myślałem też, że można by zrobić jakiś agregat do odczytu, który miałby dane wszystkich mikroserwisów i byłyby synchronizowany poprzez Rabbita z mikroserwisami. Wtedy komunikacja w przypadku takich synchronicznych requestów byłaby Front <-> API Gateway <-> Agregat

Dobrze myślę, czy to zupełnie inaczej powinno wyglądać?

Nikt, nic? Zły dział? Myślałem, że ktoś coś podpowie :-)
Salvation
Powinieneś mieć strukturę:
Front <> API <> Services

Front pyta API - może być asynchronicznie, wtedy nie będzie widać aż takich opóźnień w aplikacji - a to co dzieje się już po poziomie API i Services, jak się oni komunikują między sobą, etc. to już jest inna "bajka".
Możesz zrobić wszedzie async jak chcesz. Tylko pamiętać musisz, że nigdy nie dostaniesz odpowiedzi "natychmiast".

Pomiędzy frontem a API możesz też postawić Redisa i cache'ować powtarzające się zapytania, to będzie kolejne usprawnienie, ale dopiero jak zauważysz problemy z wczytywaniem się contentu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.