W nagłówku zobaczyliśmy trzy buzzwords:

  1. Microservices
  2. Netflix Eureka
  3. Discovery (Registry)

Co to jest mikroserwis?

W prostych słowach, mikroserwis(y) są klastrami małych aplikacji, które współpracują ze sobą w koordynacji, aby zapewnić kompletne rozwiązanie.

Gdy mówimy o wielu małych aplikacjach działających niezależnie razem, wtedy wszystkie będą miały swoje własne adresy URL i porty. W tym scenariuszu byłoby bardzo kłopotliwe, aby utrzymać wszystkie te mikroserwisy, aby działać w synchronizacji, a co ważniejsze, z monitorowaniem. Ten problem zwiększy się wielokrotnie, gdy zaczniemy wdrażać load balancery.

Aby rozwiązać ten problem, potrzebujemy narzędzia, które będzie monitorować i utrzymywać rejestr wszystkich mikroserwisów w ekosystemie.

Czym jest Netflix Eureka?

Jest to narzędzie dostarczone przez Netflix, aby zapewnić rozwiązanie powyższego problemu. Składa się ono z serwera Eureka i klientów Eureka. Serwer Eureka jest sam w sobie mikroserwisem, do którego rejestrują się wszystkie inne mikroserwisy. Klienci Eureka są niezależnymi mikroserwisami. Zobaczymy, jak to skonfigurować w ekosystemie mikroserwisów.

Będę używał Spring Boot do stworzenia kilku mikroserwisów, które będą działać jako klienci Eureka, oraz serwera Discovery, który będzie serwerem Eureka. Oto kompletna struktura projektu:

microservice1

Let’s Discuss the Eureka Discovery Server

To jest serwer Eureka, a do tego musimy dołączyć do projektu zależność Eureka. Poniżej znajduje się pom.xml dla Eureka Discovery Server.

microService2

Musimy również zaktualizować plik właściwości dla tego projektu, aby wskazać, że jest to serwer odkrywania, a nie klient.

eureka.instance.hostname=localhosteureka.client.register-with-eureka=falseeureka.client.fetch-registry=false

Aby powiązać aplikację odkrywania z konkretnym portem i nadać jej nazwę, musimy również dodać następujące elementy:

server.port=8000spring.application.name=DiscoveryServer

microService3

Jedną z ostatnich rzeczy do zrobienia jest dodanie adnotacji do aplikacji Spring Boot, aby umożliwić jej działanie jako serwer Eureka. Aby to zrobić, musimy dodać @EnableEurekaServer .

microService4

Po uruchomieniu aplikacji zobaczymy UI dostarczony przez Eureka, aby wyświetlić listę wszystkich serwerów, które zostały zarejestrowane. Ale w tym momencie nie mamy żadnego!

microService5

Dodajmy teraz kilka mikroserwisów do ekosystemu i zarejestrujmy je na serwerze odkrywania. W tym celu musimy również dodać zależności wymagane w każdej usłudze i zarejestrować je na serwerze. Zobaczymy jak w szczegółach poniżej.

Utworzyłem trzy proste mikroserwisy (mikroserwis1, mikroserwis2, mikroserwis3) za pomocą Spring Boot i każdy z nich działa na swoim własnym porcie (8002, 8003 i 8004).

mikroserwis6

Jako klient powinien zarejestrować się do serwera, a dzieje się to w pliku właściwości, jak poniżej.

microService7

Główna aplikacja będzie miała adnotację @EnableEurekaClient w każdej mikroserwisie.

microService8

Uruchom tę aplikację, aby działała na porcie 8004, a ona automatycznie zarejestruje się do serwera odkrywania. W podobny sposób utworzyłem dwie kolejne mikroserwisy i zarejestrowałem je na serwerze odkrywania.

microService9

Widzimy, że w ekosystemie działają trzy serwery i możemy monitorować stan tych serwerów.

Ułatwia to monitorowanie wszystkich serwerów i ich replik w przypadku, gdy używamy load balancera.

Mam nadzieję, że pomoże to w rozpoczęciu korzystania z serwera Discovery i klientów Eureka.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.