Architektura mikrousług:
Od mojego , musisz mieć podstawową wiedzę na temat architektury mikrousług.Ale będąc profesjonalistą z będzie wymagać czegoś więcej niż tylko podstaw. Na tym blogu zagłębisz się w koncepcje architektoniczne i zaimplementujesz je na przykładzie UBER-a.
Na tym blogu dowiesz się o następujących kwestiach:
- Definicja architektury mikrousług
- Kluczowe koncepcje architektury mikrousług
- Plusy i minusy architektury mikrousług
- UBER - studium przypadku
Możesz zapoznać się z , aby zrozumieć podstawy i zalety mikrousług.
Będzie uczciwie tylko wtedy, gdy podam definicję mikrousług.
Definicja mikrousług
W związku z tym nie ma właściwej definicji mikrousług zwanych architekturą mikrousług, ale można powiedzieć, że jest to struktura składająca się z małych, indywidualnie wdrażanych usług wykonujących różne operacje.
Mikrousługi koncentrują się na jednej domenie biznesowej, którą można wdrożyć jako w pełni niezależne usługi wdrażalne i wdrożyć je na różnych stosach technologii.
Rysunek 1: Różnica między architekturą monolityczną a mikrousługową - architektura mikrousług
Zapoznaj się z powyższym diagramem, aby zrozumieć różnicę między architekturą monolityczną i mikrousługową.Aby lepiej zrozumieć różnice między obiema architekturami, możesz zapoznać się z moim poprzednim blogiem
Aby lepiej zrozumieć, opowiem o kilku kluczowych koncepcjach architektury mikrousług.
Kluczowe koncepcje architektury mikrousług
Zanim zaczniesz budować własne aplikacje przy użyciu mikrousług, musisz mieć jasność co do zakresu i funkcjonalności aplikacji.
Poniżej przedstawiono kilka wskazówek, których należy przestrzegać podczas omawiania mikrousług.
Wytyczne dotyczące projektowania mikrousług
tableau łączenie dwóch źródeł danych
- Jako programista, decydując się na zbudowanie aplikacji, oddziel domeny i jasno określ funkcje.
- Każda zaprojektowana przez Ciebie mikrousługa powinna koncentrować się tylko na jednej usłudze aplikacji.
- Upewnij się, że zaprojektowałeś aplikację w taki sposób, aby każdą usługę można było wdrożyć indywidualnie.
- Upewnij się, że komunikacja między mikrousługami odbywa się za pośrednictwem serwera bezstanowego.
- Każda usługa może zostać przekształcona w mniejsze usługi, posiadające własne mikrousługi.
Po zapoznaniu się z podstawowymi wskazówkami podczas projektowania mikrousług, przyjrzyjmy się architekturze mikrousług.
Jak działa architektura mikrousług?
Typowa architektura mikrousług (MSA) powinna składać się z następujących komponentów:
- Klienci
- Dostawcy tożsamości
- Gateway API
- Formaty wiadomości
- Bazy danych
- Treść statyczna
- Zarządzanie
- Wykrywanie usług
Zapoznaj się z poniższym schematem.
Rysunek 2: Architektura mikrousług - Architektura mikrousług
Wiem, że architektura wygląda na nieco złożoną, ale pozwóljauprościć to dla siebie.
1. Klienci
Architektura zaczyna się od różnych typów klientów, z różnych urządzeń, próbujących wykonywać różne funkcje zarządzania, takie jak wyszukiwanie, budowanie, konfigurowanie itp.
2. Dostawcy tożsamości
Te żądania od klientów są następnie przekazywane dostawcom tożsamości, którzy uwierzytelniają żądania klientów i przekazują żądania do API Gateway. Żądania są następnie przekazywane do usług wewnętrznych za pośrednictwem dobrze zdefiniowanej bramy interfejsu API.
3. Brama API
Ponieważ klienci nie wywołują usług bezpośrednio, API Gateway działa jako punkt wejścia dla klientów do przekazywania żądań do odpowiednich mikrousług.
Zalety korzystania z bramy API obejmują:
- Wszystkie usługi można aktualizować bez wiedzy klientów.
- Usługi mogą również używać protokołów przesyłania wiadomości, które nie są przyjazne dla sieci.
- Brama API może wykonywać funkcje przekrojowe, takie jak zapewnianie bezpieczeństwa, równoważenie obciążenia itp.
Po otrzymaniu żądań klientów architektura wewnętrzna składa się z mikrousług, które komunikują się ze sobą za pomocą komunikatów w celu obsługi żądań klientów.
4. Formaty wiadomości
Są dwa rodzaje wiadomości, za pośrednictwem których się komunikują:
- Synchroniczne wiadomości: W sytuacji, gdy klienci czekają na odpowiedzi z usługi, zwykle używają mikrousług REST (Reprezentacyjny transfer państwa) ponieważ opiera się na bezstanowym, klient-serwerze i Protokół HTTP . Ten protokół jest używany, ponieważ jest to środowisko rozproszone, każda funkcjonalność jest reprezentowana za pomocą zasobu do wykonywania operacji
- Wiadomości asynchroniczne: W sytuacji, gdy klienci nie czekają na odpowiedzi z usługi, mikrousługi zwykle używają protokołów, takich jak AMQP, STOMP, MQTT . Te protokoły są używane w tego typu komunikacji, ponieważ charakter wiadomości jest zdefiniowany i te wiadomości muszą być interoperacyjne między implementacjami.
Kolejne pytanie, które może przyjść do głowy, dotyczy tego, w jaki sposób aplikacje korzystające z mikrousług radzą sobie z danymi?
5. Przetwarzanie danych
Cóż, każda mikrousługa posiada prywatną bazę danych do przechwytywania ich danych i wdrażania odpowiednich funkcji biznesowych. Ponadto bazy danych mikrousług są aktualizowane wyłącznie za pośrednictwem ich usług API. Zobacz poniższy diagram:
Rysunek 3: Reprezentacja mikrousług obsługujących dane - architektura mikrousług
Usługi świadczone przez Microservices są przenoszone do dowolnej usługi zdalnej, która obsługuje komunikację między procesami dla różnych stosów technologii.
6. Treść statyczna
Po tym, jak mikrousługi komunikują się w sobie, wdrażają zawartość statyczną w usłudze pamięci masowej w chmurze, która może dostarczać je bezpośrednio do klientów za pośrednictwem Sieci dostarczania treści (CDN) .
Oprócz powyższych komponentów, w typowej architekturze mikrousług pojawiają się inne komponenty:
7. Zarządzanie
jak przekonwertować na binarny w Pythonie
Ten komponent jest odpowiedzialny za równoważenie usług na węzłach i identyfikowanie awarii.
8. Wykrywanie usług
Działa jako przewodnik po mikrousługach w celu znalezienia trasy komunikacji między nimi, ponieważ utrzymuje listę usług, w których znajdują się węzły.
Zasubskrybuj nasz kanał YouTube, aby otrzymywać nowe aktualizacje ..!
Przyjrzyjmy się teraz zaletom i wadom tej architektury, aby lepiej zrozumieć, kiedy należy jej używać.
Plusy i minusy architektury mikrousług
Zapoznaj się z poniższą tabelą.
Zalety architektury mikrousług | Wady mikrousług Architektura |
Swoboda korzystania z różnych technologii | Zwiększa wyzwania związane z rozwiązywaniem problemów |
Każda mikrousługa koncentruje się na pojedynczych możliwościach biznesowych | Zwiększa opóźnienia spowodowane połączeniami zdalnymi |
Obsługuje poszczególne jednostki do rozmieszczania | Zwiększone wysiłki związane z konfiguracją i innymi operacjami |
Umożliwia częste wydania oprogramowania | Trudne do utrzymania bezpieczeństwa transakcji |
Zapewnia bezpieczeństwo każdej usługi | Trudne do śledzenia danych w różnych granicach usług |
Wiele usług jest opracowywanych i wdrażanych równolegle | Trudne do przenoszenia kodu między usługami |
Pozwól nam zrozumieć więcej na temat mikrousług, porównując poprzednią architekturę UBER z obecną.
STUDIUM PRZYPADKU UBERA
Poprzednia architektura UBER
Podobnie jak wiele startupów, UBER rozpoczął swoją podróż od monolitycznej architektury zbudowanej dla jednej oferty w jednym mieście. Posiadanie jednej bazy kodu wydawało się wówczas wyczyszczone i rozwiązało podstawowe problemy biznesowe UBER-a. Jednak gdy UBER zaczął się rozwijać na całym świecie, rygorystycznie stawiał czoła różnym problemom związanym ze skalowalnością i ciągłą integracją.
Rysunek 4: Architektura monolityczna UBER - Architektura mikrousług
Powyższy diagram przedstawia poprzednią architekturę UBER.
- Obecne jest REST API, z którym łączy się pasażer i kierowca.
- Trzy różne adaptery są używane z API w nich, do wykonywania czynności takich jak fakturowanie, płatności, wysyłanie e-maili / wiadomości, które widzimy, gdy rezerwujemy taksówkę.
- Baza danych MySQL do przechowywania wszystkich danych.
Tak więc, jeśli zauważysz tutaj, wszystkie funkcje, takie jak zarządzanie pasażerami, fakturowanie, funkcje powiadomień, płatności, zarządzanie podróżami i zarządzanie kierowcami zostały skomponowane w jednej strukturze.
Stwierdzenie problemu
Podczas gdy UBER zaczął się rozwijać na całym świecie, tego rodzaju ramy wprowadziły różne wyzwania. Oto niektóre z najważniejszych wyzwań
- Wszystkie funkcje musiały zostać ponownie zbudowane, wdrożone i testowane wielokrotnie, aby zaktualizować pojedynczą funkcję.
- Naprawianie błędów stało się niezwykle trudne w pojedynczym repozytorium, ponieważ programiści musieli ciągle zmieniać kod.
- Skalowanie funkcji jednocześnie z wprowadzaniem nowych funkcji na całym świecie było dość trudne do wspólnego rozwiązania.
Rozwiązanie
Aby uniknąć takich problemów, UBER postanowił zmienić swoją architekturę i podążyć za innymi hiper-wzrostowymi firmami, takimi jak Amazon, Netflix, Twitter i wiele innych. W związku z tym firma UBER zdecydowała się rozbić swoją monolityczną architekturę na wiele baz kodów, aby utworzyć architekturę mikrousług.
Zapoznaj się z poniższym diagramem, aby przyjrzeć się architekturze mikrousług UBER.
Rysunek 5: Architektura mikrousług UBER - Architektura mikrousług
jak skonfigurować zaćmienie dla java
- Główną zmianą, którą tutaj obserwujemy, jest wprowadzenie API Gateway, dzięki któremu połączeni są wszyscy kierowcy i pasażerowie. Z API Gateway są połączone wszystkie punkty wewnętrzne, takie jak zarządzanie pasażerami, zarządzanie kierowcami, zarządzanie podróżami i inne.
- Jednostki to oddzielne, rozstawiane jednostki, które wykonują oddzielne funkcje.
- Na przykład: jeśli chcesz zmienić cokolwiek w rozliczeniowych mikrousługach, wystarczy wdrożyć tylko rozliczeniowe mikrousługi i nie musisz wdrażać pozostałych.
- Wszystkie funkcje zostały teraz skalowane indywidualnie, tj. Usunięto współzależność między wszystkimi funkcjami.
- Na przykład wszyscy wiemy, że liczba osób szukających taksówek jest porównywalnie większa niż osób faktycznie rezerwujących taksówkę i dokonujących płatności. Daje nam to wniosek, że liczba procesów działających w mikrousłudze zarządzania pasażerami jest większa niż liczba procesów pracujących na płatnościach.
W tymsposób, UBER skorzystał na zmianiejegoarchitektura od monolitycznej do mikrousług.
Mam nadzieję, że podobał Ci się ten post o architekturze Microservice.Będę wymyślał więcej blogów, które będą zawierały również ćwiczenia praktyczne.
Chcesz dowiedzieć się więcej o mikrousługach?
Jeśli chcesz nauczyć się mikrousług i tworzyć własne aplikacje, sprawdź nasze który obejmuje szkolenie na żywo prowadzone przez instruktora i rzeczywiste doświadczenie projektowe. To szkolenie pomoże ci dogłębnie zrozumieć mikrousługi i osiągnąć mistrzostwo w tym temacie.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy „ Architektura mikrousług ”I skontaktuję się z Tobą.