A címben három divatos szót láttunk:

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

Mi a Microservice?

Egyszerűbben fogalmazva, a mikroszolgáltatás(ok) olyan kis alkalmazások klaszterei, amelyek összehangoltan működnek együtt, hogy teljes megoldást nyújtsanak.

Ha azt mondjuk, hogy sok kis alkalmazás fut egymástól függetlenül együtt, akkor mindegyiknek saját URL-je és portja lesz. Ebben a forgatókönyvben nagyon nehézkes lenne fenntartani ezeket a mikroszolgáltatásokat, hogy szinkronban fussanak, és ami még fontosabb, monitorozással. Ez a probléma sokszorosára fog nőni, ha terheléselosztókat kezdünk implementálni.

A probléma megoldásához szükségünk van egy olyan eszközre, amely az ökoszisztémában lévő összes mikroszolgáltatás nyilvántartását felügyeli és karbantartja.

Mi a Netflix Eureka?

Ez a Netflix által biztosított eszköz, amely megoldást nyújt a fenti problémára. Az Eureka szerverből és az Eureka kliensekből áll. Az Eureka Server önmagában egy mikroszolgáltatás, amelyhez az összes többi mikroszolgáltatás regisztrál. Az Eureka kliensek a független mikroszolgáltatások. Megnézzük, hogyan lehet ezt egy mikroszolgáltatás ökoszisztémában konfigurálni.

A Spring Boot segítségével létrehozok néhány mikroszolgáltatást, amelyek Eureka Clients-ként fognak működni, és egy Discovery Server-t, amely Eureka Server lesz. Íme a teljes projekt felépítése:

microservice1

Megbeszéljük az Eureka Discovery Server

Ez az Eureka Server, és ehhez egy Eureka függőséget kell felvennünk a projektbe. Az alábbiakban az Eureka Discovery Server pom.xml állománya található.

microService2

Még frissítenünk kell a projekt properties fájlját, hogy jelezze, hogy ez egy Discovery Server és nem egy kliens.

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

A felfedező alkalmazás egy adott porthoz való kötéséhez és az alkalmazás elnevezéséhez a következőket is hozzá kell adnunk:

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

microService3

Egy utolsó dolog, amit meg kell tennünk, az a Spring Boot alkalmazás annotálása, hogy ezt Eureka szerverként engedélyezzük. Ehhez hozzá kell adnunk @EnableEurekaServer .

microService4

Az alkalmazás indításakor látni fogjuk az Eureka által biztosított felhasználói felületet, amely felsorolja az összes regisztrált szervert. De jelen pillanatban egy sincs!

microService5

Most adjunk hozzá néhány mikroszolgáltatást az ökoszisztémához, és regisztráljuk őket a felfedező kiszolgálóhoz. Ehhez az egyes szolgáltatásokban szükséges függőségeket is hozzá kell adnunk, és regisztrálnunk kell őket a kiszolgálón. Az alábbiakban részletesen megnézzük, hogyan.

Három egyszerű mikroszolgáltatást (microservice1, microservice2, microservice3) hoztam létre Spring Boot segítségével, és mindegyik a saját portján fut (8002, 8003 és 8004).

microService6

A kliensként regisztrálnia kell magát a szerveren, ez pedig a property fájlban történik, az alábbiak szerint.

microService7

A fő alkalmazás minden mikroszolgáltatásban @EnableEurekaClient megjegyzéssel lesz ellátva.

microService8

Bootoljuk ezt az alkalmazást, hogy a 8004-es porton fusson, és automatikusan regisztrálja magát a felfedező szerveren. Hasonló módon létrehoztam még két mikroszolgáltatást, és regisztráltam őket a felfedező szerveren.

microService9

Láthatjuk, hogy három szerver fut az ökoszisztémában, és ezek állapotát is nyomon követhetjük.

Ez megkönnyíti az összes szerver és replikáik monitorozását abban az esetben, ha terheléselosztót használunk.

Remélem, hogy ez segít a Discovery Server és Clients használatának megkezdésében az Eureka segítségével.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.