Mikroserwisy Javy

0

Cześć
Coraz więcej ofert pracy jest w kierunku tworzenia mikroserwisów. Czytam najczęściej suche definicje, ale trochę mało co z tego wynika. Mógłby ktoś bardziej przybliżyć o co w tym chodzi? Czy chodzi o to, że aplikacja podzielona jest na wiele modułów (np. jeden odpowiada za encje, drugi za widoki, trzeci za tworzenie dokumentów) i one komunikują się ze sobą za pomocą RESTa?

0

Monolit (np. aplikacja jakiegoś sklepu) - duża aplikacja zawierająca w sobie np. autoryzację, pokazywanie ofert, wysyłanie emaili, obsługa koszyka, frontendu, itd... Ma w sobie po prostu wszystko.
Mikroserwisy to wydzielone usługi takiej aplikacji (monolitu). Takie serwisy możemy sobie wydzielić np. w zależności od obciążeń danej funckjonaloności systemu.
W takim podejściu łatwiej o skalowanie danej funkcjnalności zależnie np. od jej obciążenia. Jeśli dużo osób zaczyna przeglądać oferty i ruch ciągle wzrasta to łatwiej (i taniej) jest dołożyć kolejny mikroserwis, który utrzyma taki ruch niż postawić obok całą aplikację, która będzie zużywać więcej zasobów. Nie potrzebujemy skalować części systemu która odpowiada za zmiany w profilu użytkownika, kiedy dziennie korzysta z niej kilka osób.
Kolejnym plusem jest to, że cały sklep nie padnie jeśli np. ubiją Ci się serwisy odpowiadające za wysyłanie emaili z powodu jakiegoś błędu. Użytkownicy nadal mogą przeglądać oferty, dodawać je do ulubionych, kupować - po prostu potwierdzenie emailem przyjdzie później (zakładając że masz kolejki), bo serwisy działają niezależnie od siebie. Oczywiście każdy mikroserwis powinien mieć własną bazę, żeby być jak najbardziej niezależnym i nie posiadać single point of failure
REST to standard, którego możesz użyć tak, by łatwiej było ze sobą taką architekturę spiąć.

0

Weź sobie zobacz jakis przykład:
https://github.com/spencergibb/monolith-to-microservices
Myślę że rozjaśni o co chodzi. Generalnie jeśli chodzi o microserwisy to nie jest to związane tylko z samym serwisem napisanym w javie, tutaj dochodza jeszcze np. discovery servery, caly load balancing, itd.

0

Nie rób mikroserwisow jesli naprawde nie musisz :P

0
Skromny Polityk napisał(a):

, że aplikacja podzielona jest na wiele modułów (np. jeden odpowiada za encje, drugi za widoki, trzeci za tworzenie dokumentów) i one komunikują się ze sobą za pomocą RESTa?

Dokładnie idealnie: nie tak.

W mikroserwisach dzieli się aplikacje na małe domeny. I generalnie dotyczy to serwisow (stąd nazwa).
Widoki i ogólnie mikroserwisy a frontend to osbna sprawa - Zalando ma ciekawe doświadczenie i wykłady na ten temat.

Ogólnie nie przejmowałbym się tym. Wiele zespołów robi mikroserwisy w trójkę, ale po prostu nie wie co czyni. Olej.

0

Microserwisy powinny być niezależne od technologii, możesz mieć każdy serwis napisany w innym języku. Dobrym przykładem może być np. https://istio.io/ - przejrzyj doc.

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