Dienstag, Dezember 13, 2016

Microservices komponieren

Microservices registrieren und entdecken

Microservices bereitstellen

Nachdem in Microservice bauen bereits zwei Services gebaut und mit Actuates versehen wurden, wollen wir nun die Services an einer Registry registrieren und von dort holen.

Registry bauen

Um eine Service-Registry zu bauen benötigt man wieder ein einfaches Spring Boot-Projekt, das folgende Dependency hat:

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId></dependency>

Und dessen Application-Klasse die Annotation @EnableEurekaServer trägt.

Der Standardport für den Eureka-Server ist 8761, was in der application.properties konfiguriert wird. Daneben werden noch ein paar Properties gesetzt - einfach mal übernehmen.

Dann kann die Registry gestartet werden.

Service-Discovery

Jetzt müssen sich noch die Clients bei der Registry anmelden, damit sie an von anderen gefunden werden. Dazu muss wieder Spring Boot-like eine Dependency aufgenommen werden:

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId></dependency>

Und die Application-Klasse bekommt die Annotation @EnableDiscoveryClient. In der application.properties muss jetzt bekannt gegeben werden, wo die Service-Registry zu finden ist, damit sich dieser Service dort an melden kann. Das sieht so aus:

eureka.client.serviceUrl.defaultZone=http://${service-registry.server.hostname}:8761/eureka/eureka.client.instance.preferIpAddress=trueeureka.instance.nonSecurePort=${server.port}

Der Wert service-registry.server.hostname=localhost ist schon mal vorbereitet noch separat konfiguriert werden.

Auch der Client kann jetzt gestartet werden.

Test

Jetzt sollte folgendes Bild erscheinen:


Wie man sieht, haben sie die Clients beide an der Service-Registry angemeldet.

Referenzen


Serviceaufruf mittels Registry




Keine Kommentare: