Verwenden Sie Eureka, um die Dienstleistungsführung zu erreichen
Funktion: Service Governance realisieren (Service Registrierung und Entdeckung)
Einführung: Spring Cloud Eureka ist ein Service Governance -Modul im Rahmen des Spring Cloud Netflix -Projekts. Das Spring Cloud Netflix -Projekt ist eines der Unterprojekte der Spring Cloud. Der Hauptinhalt besteht darin, eine Reihe von Open -Source -Produkten von Netflix zu verpacken. Es bietet selbstkonfigurierte Netflix OSS-Integration für Spring-Boot-Anwendungen. Mit einigen einfachen Anmerkungen können Entwickler häufig verwendete Module in ihren Anwendungen konfigurieren und ein riesiges verteiltes System erstellen. Zu den Hauptmodulen gehören: Service Discovery (Eureka), Leistungsschalter (Hystrix), intelligentes Routing (Zuul), Client -Lastausgleich (Band) usw.
Projekt Praktische Praxis:
Service Registrierungszentrum: Eureka-Server
Funktion: Service Registration Center bietet Service Registrierungsfunktion
Dienstleister: Eureka-Client
Funktion: Registrieren Sie einen Service im Service Registration Center
Service Registrierungszentrum: Eureka-Server
Erstellen Sie ein neues Springboot-Projekt: Eureka-Server und seine POM.xml-Konfiguration lautet wie folgt:
<Properties> <project.build.sourceCoding> utf-8 </project.build.sourceCoding> <project.reporting.outputcoding> utf-8 </project.reporting.outputcoding> <java.version> 1.8 </java.version> </</</</</</</</</</</</</</</</</</</</</</3)> </</</</</</</</</</</</</</</</3 </Java. <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version> dalston.sr1 </version> <typs> pom </type> <scope> import </scope> </abhängigen
Es ist sehr einfach, die Funktion eines Service -Registrierungszentrums zu implementieren. Sie müssen nur die @EnableEureKaserver -Annotation in der Startup -Klasse des Projekts Eurekaserverapplication verwenden.
@EnableeureKaserver @springbootApplication Public Class EurekaserverApplication {public static void main (String [] args) {new SpringApplicationBuilder (eurekaserverApplication.class) .Web (wahr) .run (args); }}Standardmäßig wird das Service Registration Center auch versucht, sich als Client zu registrieren. Daher müssen wir sein Kundenregistrierungsverhalten deaktivieren und einfach die folgenden Informationen zur Anwendung hinzufügen. Properties -Konfigurationsdatei:
Spring.Application.name = eureka-serverserver.port = 1001eureka.instance.hostname = localhosteureka.client.register-with-eureka = falseeureka.client.fetch-Registry = false
Starten Sie EurekaserverApplication, besuchen Sie http: // localhost: 9001/um die Seite von Eureka zu sehen. Aus dem Standort der roten Box können Sie feststellen, dass keine Task -Service -Instanz für das aktuelle Service Registration Center registriert ist.
Dienstleister: Eureka-Client
Nachdem jede Instanz registriert ist, ist ein Herzschlag erforderlich, um einen Herzschlag an das Registrierungszentrum zu senden. Wenn der Client mit dem Server registriert, bietet er einige Metadaten wie Host und Port, URL, Startseite usw. Eureka Server empfängt von jeder Client -Instanz Herzbeatmeldungen. Wenn das Herzschlag ausfällt, wird die Instanz normalerweise vom registrierten Server entfernt.
Erstellen Sie ein neues Springboot-Projekt: Eureka-Client, und seine pom.xml-Konfiguration lautet wie folgt:
<Properties> <project.build.sourceCoding> utf-8 </project.build.sourceCoding> <project.reporting.outputcoding> utf-8 </project.reporting.outputcoding> <java.version> 1.8 </java.version> </</</</</</</</</</</</</</</</</</</</</</3)> </</</</</</</</</</</</</</</</3 </Java. <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependency> </dependency> </dependency> <DepepecyManagement> <De vorangehen> <Deponcy> <gruppe> org.springFramework
Es ist auch sehr einfach, einen Dienstanbieter zu implementieren. Verwenden Sie einfach die @EnableeureKaclient Annotation in der Startup -Klasse des Projekts EurekaClientApplication des Projekts.
@EnableEureKaclient @springbootApplication Public Class EurekaClientApplication {public static void main (String [] args) {new SpringApplicationBuilder (eurekaclientApplication.class) .Web (wahr) .run (args); }}Konfigurieren Sie Folgendes in application.properties
Spring.Application.name = eureka-clientServer.port = 9002eureka.client.serviceurl.defaultZone = http: // localhost: 9001/eureka/
Über die Eigenschaft feder.application.name können wir den Namen des Microservice beim Aufrufen angeben, damit der Dienst zugegriffen werden kann.
Die Eigenschaft eureka.client.serviceurl.DefaultZone entspricht dem Konfigurationsinhalt des Service -Registrierungszentrums und gibt den Standort des Service -Registrierungszentrums an.
Verwenden Sie die Eigenschaft server.port, um verschiedene Ports festzulegen.
Starten Sie die EurekaclientApplication -Klasse
Aktualisieren Sie http: // localhost: 9001/, und Sie können sehen, dass sich unser Dienstleister beim Service Registration Center registriert hat
Erstellen Sie einen neuen DiscoveryController
Verwenden Sie DiscoveryClient.getServices (), um den registrierten Dienstnamen zu erhalten
@RestControllerPublic Class DiscoveryController {@autowired Private DiscoveryClient DiscoveryClient; @Value ("$ {server.port}") private String ip; @Getmapping ("/client") public String client () {String dienste = "dienste:"+DiscoveryClient.getServices ()+"ip:"+ip; System.out.println (Dienste); Rückgabedienste; }}Besuchen Sie: http: // localhost: 9002/client
Lassen Sie mich schließlich die beiden Anmerkungen erklären @enableeureKaclient und @EnablediscoveryClient
Zunächst können beide Anmerkungen die Funktion der Service -Entdeckung realisieren. Es gibt viele Implementierungen von Discovery Service in Spring Cloud (Eureka, Consul, Zookeeper usw.)
@EnableeureKaClient basiert auf Spring-Cloud-Netflix. Der Service verwendet Eureka als Registrierungszentrum, und die Nutzungsszenarien sind relativ Single.
@EnablediscoveryClient basiert auf Frühlings-Cloud-Kommons. Der Service nimmt andere Registrierungszentren an.
Github: https://github.com/mingyuhub/springcloud
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.