V titulku jsme viděli tři módní slova:

  1. Mikroslužby
  2. Netflix Eureka
  3. Discovery (Registry)

Co je to mikroslužba?

Zjednodušeně řečeno, mikroslužba (mikroslužby) jsou shluky malých aplikací, které spolupracují koordinovaně a poskytují kompletní řešení.

Když řekneme spousta malých aplikací běžících nezávisle na sobě, pak budou mít všechny své vlastní adresy URL a porty. V takovém případě by bylo velmi těžkopádné udržovat všechny tyto mikroslužby, aby běžely synchronizovaně, a co je důležitější, s monitorováním. Tento problém se mnohonásobně zvětší, když začneme implementovat load balancery.

Pro vyřešení tohoto problému potřebujeme nástroj, který bude monitorovat a udržovat registr všech mikroslužeb v ekosystému.

Co je Netflix Eureka?

Jedná se o nástroj poskytovaný společností Netflix, který má poskytnout řešení výše uvedeného problému. Skládá se ze serveru Eureka a klientů Eureka. Server Eureka je sám o sobě mikroslužbou, ke které se registrují všechny ostatní mikroslužby. Klienti Eureka jsou nezávislé mikroslužby. Uvidíme, jak to nakonfigurovat v ekosystému mikroslužeb.

Pomocí Spring Boot vytvořím několik mikroslužeb, které budou fungovat jako Eureka Clients, a Discovery Server, který bude Eureka Server. Zde je kompletní struktura projektu:

microservice1

Podiskutujme o Eureka Discovery Serveru

Jedná se o Eureka Server, a proto musíme do projektu zahrnout závislost Eureka. Níže je uveden soubor pom.xml pro Eureka Discovery Server.

microService2

Také musíme aktualizovat soubor vlastností tohoto projektu, aby bylo uvedeno, že se jedná o discovery server a ne o klienta.

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

Abychom mohli aplikaci discovery svázat s konkrétním portem a pojmenovat ji, musíme také přidat následující:

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

microService3

Ještě je třeba provést anotaci aplikace Spring Boot, aby byla povolena jako server Eureka. K tomu musíme přidat @EnableEurekaServer .

microService4

Po spuštění aplikace uvidíme uživatelské rozhraní poskytované Eurekou pro seznam všech serverů, které se registrují. V tuto chvíli však nemáme žádnou!

microService5

Nyní přidáme do ekosystému několik mikroslužeb a zaregistrujeme je na serveru discovery. K tomu musíme také přidat závislosti požadované v každé službě a zaregistrovat je na serveru. Jak na to, si ukážeme v podrobnostech níže.

Vytvořil jsem tři jednoduché mikroslužby (mikroslužba1, mikroslužba2, mikroslužba3) se systémem Spring Boot a každá z nich běží na vlastním portu (8002, 8003 a 8004).

mikroslužba6

Jako klient by se měla zaregistrovat na server, a to se děje v souboru vlastností, jak je uvedeno níže.

microService7

Hlavní aplikace bude mít v každé mikroslužbě anotaci @EnableEurekaClient.

microService8

Začněte tuto aplikaci spouštět na portu 8004 a ona se automaticky zaregistruje k serveru discovery. Podobným způsobem jsem vytvořil další dvě mikroslužby a zaregistroval je na serveru discovery.

microService9

Vidíme, že v ekosystému běží tři servery a můžeme sledovat i jejich stav.

To usnadňuje sledování všech serverů a jejich replik v případě, že používáme load balancer.

Doufám, že vám to pomůže začít používat Discovery Server a klienty pomocí Eureka.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.