Najważniejsze wzorce projektowe mikroserwisów przygotowujące do rozmów kwalifikacyjnych

May 06 2023
Jak działają wzorce projektowe mikrousług Wzorce projektowe mikrousług stają się coraz bardziej popularne ze względu na ich zdolność do zwiększania sprawności, skalowalności, odporności i łatwości konserwacji oprogramowania. małe, niezależnie wdrażane usługi.

Jak działają wzorce projektowe mikrousług

Wzorce projektowe mikrousług stają się coraz bardziej popularne ze względu na ich zdolność do poprawy elastyczności, skalowalności, odporności i łatwości konserwacji oprogramowania. Wzorce projektowe mikrousług to zestaw zasad i najlepszych praktyk służących do opracowywania i utrzymywania systemów oprogramowania składających się z małych, niezależnie wdrażanych usług. W tym artykule omówimy ważne wzorce projektowe mikrousług, których można użyć do tworzenia solidnych i wydajnych mikrousług architektury.

Brama interfejsu API:

API Gateway to usługa, która działa jako front-end dla mikroserwisów. Odbiera żądania od klientów i kieruje je do odpowiedniej usługi.

Jak działa wzorzec bramy interfejsu API:

Wzorzec API Gateway działa poprzez przechwytywanie żądań od klientów i kierowanie ich do odpowiedniej usługi. Gdy klient wysyła żądanie do systemu, żądanie jest najpierw wysyłane do API Gateway. Następnie API Gateway sprawdza, czy żądanie jest autoryzowane, a jeśli tak, kieruje żądanie do odpowiedniej usługi.

Brama API może również wykonywać inne funkcje, takie jak ograniczanie szybkości, buforowanie i uwierzytelnianie. Na przykład może ograniczyć liczbę żądań, które klient może skierować do usługi w danym przedziale czasowym. Może również buforować odpowiedzi z usług, aby zmniejszyć obciążenie usług bazowych.

Wyłącznik obwodu:

Wzorzec wyłącznika służy do wykrywania awarii i zapobiegania awariom kaskadowym w systemie rozproszonym. Działa jak wyłącznik elektryczny, który wyzwala i przerywa obwód w przypadku przeciążenia, zapobiegając uszkodzeniu sprzętu elektrycznego. Podobnie wzorzec wyłącznika może wyzwolić i zatrzymać przepływ ruchu do niesprawnego systemu.

Jak działa wzorzec Circuit Breaker:

Wzorzec wyłącznika działa poprzez monitorowanie kondycji składnika systemu i podejmowanie działań w przypadku wykrycia awarii. Wyłącznik ma trzy stany: zamknięty, otwarty i półotwarty.

  1. Stan zamknięty: W stanie zamkniętym wyłącznik umożliwia normalny przepływ ruchu do elementu systemu. Wyłącznik monitoruje czasy odpowiedzi i współczynniki błędów komponentu systemu.
  2. Stan otwarty: jeśli wyłącznik automatyczny wykryje, że element systemu uległ awarii, wyłącza się i przechodzi w stan otwarty. W stanie otwartym wyłącznik zatrzymuje cały ruch do komponentu systemu i przekierowuje ruch do komponentu zapasowego lub zwraca klientowi komunikat o błędzie.
  3. Stan półotwarty: Po upływie określonego czasu wyłącznik przechodzi w stan półotwarty. W stanie półotwartym wyłącznik zezwala na przepływ ograniczonej ilości ruchu do komponentu systemu. Jeśli element systemu pomyślnie zareaguje na ruch, wyłącznik automatyczny powraca do stanu zamkniętego. Jeśli komponent systemu nie zareaguje pomyślnie, wyłącznik automatyczny powraca do stanu otwartego.

W tradycyjnym systemie istnieje jeden model obsługujący zarówno operacje odczytu, jak i zapisu. Model ten odpowiada za utrzymywanie stanu systemu, przetwarzanie poleceń oraz zwracanie danych do klienta. Jednak wraz ze wzrostem złożoności i rozmiaru systemu staje się trudne skalowanie i utrzymanie.

Aby przezwyciężyć powyższy problem, wzorzec CQRS rozdziela operacje odczytu i zapisu na dwa różne modele: model poleceń i model zapytań. Model Command jest odpowiedzialny za obsługę operacji zapisu i aktualizację stanu systemu. Model Query jest odpowiedzialny za obsługę operacji odczytu i zwracanie danych do klienta.

Jak działa wzorzec CQRS:

Gdy klient wysyła polecenie do systemu, jest ono obsługiwane przez model poleceń. Model polecenia przetwarza polecenie i aktualizuje stan systemu. Jeśli polecenie zakończy się pomyślnie, zwraca klientowi komunikat o powodzeniu.

Gdy klient wysyła zapytanie do systemu, jest ono obsługiwane przez model zapytań. Model Query pobiera dane z systemu i zwraca je klientowi. Model Query można zoptymalizować pod kątem operacji odczytu, co może poprawić wydajność systemu.

Pozyskiwanie zdarzeń

Pozyskiwanie zdarzeń to wzorzec używany w projektowaniu oprogramowania, który obejmuje modelowanie stanu aplikacji jako sekwencji zdarzeń. Zamiast przechowywać aktualny stan aplikacji, system przechowuje sekwencję zdarzeń.

Jak działa pozyskiwanie zdarzeń:

Wzorzec pozyskiwania zdarzeń działa poprzez przechowywanie sekwencji zdarzeń opisujących zmiany stanu aplikacji. Każde zdarzenie jest przechowywane jako osobny rekord w magazynie zdarzeń, który jest bazą danych zoptymalizowaną pod kątem przechowywania dużej liczby zdarzeń.

Gdy użytkownik wchodzi w interakcję z systemem, system generuje zdarzenie opisujące działanie użytkownika. Na przykład, jeśli użytkownik złoży zamówienie, system wygeneruje zdarzenie opisujące szczegóły zamówienia. Zdarzenie byłoby przechowywane w magazynie zdarzeń, a system aktualizowałby stan aplikacji na podstawie zdarzenia.

Gdy trzeba sprawdzić stan aplikacji, system odczytuje wszystkie zdarzenia w magazynie zdarzeń i stosuje je w sekwencji w celu odtworzenia bieżącego stanu aplikacji. Ten proces jest znany jako odtwarzanie zdarzeń.

Wzór sagi

Wzorzec projektowy Saga to technika stosowana w systemach rozproszonych w celu zachowania spójności wielu transakcji obejmujących wiele usług. Służy do zarządzania transakcjami rozproszonymi w wielu usługach w sposób zapewniający spójność danych.

W systemie rozproszonym pojedyncza transakcja często obejmuje wiele usług. Na przykład w systemie handlu elektronicznego pojedyncze zamówienie może wymagać aktualizacji usługi inwentaryzacji, usługi płatności i usługi wysyłki. Jeśli którakolwiek z tych usług zawiedzie, może to prowadzić do niespójności w danych. Wzorzec Saga pomaga upewnić się, że transakcja została zakończona pomyślnie lub wycofana, jeśli wystąpią jakiekolwiek błędy.

Wzorzec Saga polega na rozbiciu pojedynczej transakcji na wiele mniejszych transakcji, znanych również jako „transakcje kompensacyjne”. Te transakcje kompensacyjne są wykonywane w określonej kolejności i mają na celu cofnięcie skutków poprzedniej transakcji w przypadku wystąpienia błędów. Kolejność transakcji kompensujących ma kluczowe znaczenie dla zapewnienia spójności systemu.

Wniosek

Chociaż wzorce projektowe mikrousług oferują wiele korzyści, wprowadzają również nowe złożoności, takie jak orkiestracja usług, komunikacja między usługami i zarządzanie systemami rozproszonymi. Dlatego ważne jest, aby dokładnie rozważyć wzorce projektowe, które są odpowiednie dla danej aplikacji, biorąc pod uwagę wymagania biznesowe, ograniczenia techniczne i wiedzę zespołu programistów.

Ogólnie rzecz biorąc, dzięki wzorcom projektowym mikrousług organizacje mogą tworzyć systemy oprogramowania, które są bardziej elastyczne, skalowalne i odporne.

Linki odsyłające do koncepcji Spring Boot:

Dostęp oparty na rolach Spring Security z Spring Boot

Spring Security Uwierzytelnianie i autoryzacja za pomocą JWT

Wiosenny samouczek AOP

Samouczek rejestrowania Spring Boot

Scentralizowana konfiguracja w Spring Boot