1. Einführung in die Frühlingswolke
Spring Cloud ist ein Microservice -Architekturentwicklungs -Tool, das auf Springboot -Implementierung basiert. Es bietet eine einfache Entwicklungsmethode für die an der Microservice-Architektur beteiligten Operationen wie Konfigurationsmanagement, Service-Governance, Leistungsschalter, intelligente Routing, Mikroagenten, Steuerbus, globale Schlösser, Entscheidungskampagnen, verteilte Sitzungen und Cluster-State-Management.
Die Spring Cloud enthält mehrere Unterprojekte (für mehrere verschiedene Open -Source -Produkte, die an verteilten Systemen beteiligt sind, und können auch hinzugefügt werden), wie nachstehend beschrieben.
Spring Cloud -Konfiguration: Konfigurationsverwaltungs -Tools, Spring Cloud Netflix: Kernkomponenten, Spring Cloud -Bus: Ereignisse, Nachrichtenbus und mehr.
2. Springwolke Eureka
Spring Cloud Eureka ist Teil der Spring Cloud Netflix Microservice Suite. Es ist sekundär eingekapselt, basierend auf Netflixeureka, das hauptsächlich für die Ausführung von Service -Governance -Funktionen in der Microservice -Architektur verantwortlich ist. Spring Cloud fügt Eureka automatisierte Konfigurationen im Startstil hinzu. Wir können Microservice-Anwendungen, die von Spring Boot erstellt wurden, einfach in das Eureka Service Governance-System integrieren, indem wir einfach Abhängigkeiten und Annotationskonfigurationen einführen.
Service Governance kann als das zentralste und grundlegendste Modul in der Microservice -Architektur bezeichnet werden. Es wird hauptsächlich verwendet, um die automatisierte Registrierung und Entdeckung verschiedener Microservice -Instanzen zu realisieren.
III. Beispiel
(1) Werkzeug: Intellij Idee
(2) Erstellen Sie ein neues leeres Projekt
(3) Erstellen Sie einen neuen Eureka -Server, Modul mit dem Namen: Eurekaserver
Klicken Sie mit der rechten Maustaste auf das Projekt -> Modul erstellen -> SpringInitialir -> Ausfüllen Sie den Projektnamen und den nächsten Schritt ->, wählen Sie Eureka -Server wie in der Abbildung gezeigt:
(3-1) pom.xml
<Depopenty> <gruppe> org.springFramework.boot </GroupId> <artifactId> Spring-Boot-Starter-Web </artifactId> </abhängig> <Depopentcy> <GroupID> org.springFramework <gruppe> org.springframework.boot </Groupid> <artifactid> Spring-Boot-Starter-Test </artifactId> <Schops> Test </Scope> </abhängig>
(3-2) application.yml
Server: Port: 5555 Eureka: Instanz: hostname: localhost client: registerWitheureka: false fetchregistry: false serviceurl: defaultZone: http: // $ {eureka.instance.hostname}: $ {server.port}/eureka/ Hinweis: Eureka.client.register-with-Eureka: Da diese Anwendung eine Registrierung ist, ist sie auf False eingestellt, was bedeutet, dass Sie sich nicht bei der Registrierung registrieren.
eureka.client.fetch-Registry: Da die Registrierung die Verantwortung darin besteht, Serviceinstanzen aufrechtzuerhalten, muss sie keine Dienste abrufen, sodass sie auch auf False eingestellt ist.
(3-3) Eingangsklasse
import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootApplication; import org.springframework.cloud.netflix.eureka.server.enableeurekaserver; @EnableEureKaserver @springbootApplication Public Class EurekaserverApplication {public static void main (String [] args) {SpringApplication.run (eurekaserverApplication.class, args); }}(3-4) Starten Sie den Test
Starten Sie nach Abschluss der oben genannten Konfiguration die Anwendung und besuchen Sie http: // localhost: 5555/. Sie können das in der folgende Abbildung gezeigte Eureka -Informationsfeld sehen. Die derzeit bei der Eureka -Spalte registrierten Fälle sind leer, was darauf hinweist, dass das Registrierungszentrum keine Dienste registriert hat.
(4) Nachdem der Registrierungsdienstleister die Einrichtung des Service Registration Center abgeschlossen hat, werden wir versuchen, dem Service Governance -System von Emeka eine vorhandene Spring -Boot -Anwendung hinzuzufügen.
(5) Erstellen Sie einen neuen Eureka -Client, Modul mit dem Namen: HelloServer, dieser HelloServer wird als Kindermodell von Eurekaserver verwendet
(6) Reform die POM-Konfiguration des übergeordneten Modells und des untergeordneten Modells (6-1) Die POM.xml-Konfiguration von Eurekaserver:
<Pakete> pom </packaging> <module> <modul> ../ HelloServer </modul> </module>
(6-2) alle pom.xml von eurekaserver:
<? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demoeurekaserver</artifactId> <version> 0.0.1-Snapshot </Version> <Paket> pom </packaging> <module> <modul> ../ HellServer </modul> </modules> <name> eurekaserver </name> <cription> Demo-Projekt für Spring-Boot </Beschreibung> <Potent> <gruppe> org.ssplamework.boot. <artifactid> Spring-Boot-Starter-Parent </artifactId> <version> 1.5.9.Release </Version> <RelativePath/> <!-SOKOUP-Elternteil aus Repository-> </parent> <properties> <projekt.build.sourceencoding> utf-8 </project.build.SureCoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Edgware.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId> Spring-Boot-Starter-Web </artifactId> </abhängig> <depeopcy> <Groupid> org.springFramework.cloud </Groupid> <artifactId> Spring-Cloud-Starter-Eureka-server </artifactID> </abhängig> <entell-cross <gruppen-gruppen> <gruppen- oderg. <artifactId> Spring-Boot-Starter-Test </artifactId> <Schops> Test </scope> </abhängig> </abhängigkeiten> <DeponcyManagement> <Abhängigkeiten> <Depopentcy> <gruppe-org. <Typ> pom </type> <scope> import </scope> </abhängig> </abhängigkeiten> </abhängigkeiten> </abhängig> </abhängigManagement> <build> <plugins> <plugin> <gruppe> org.springFramework </build> </project>
(6-3) HelloServer-POM.XML-Konfiguration:
<Eltern> <gruppe> com.example </GroupId> <artifactId> Demoeurekaserver </artifactId> <version> 0.0.1-snapshot </Version> <RelativePath> ../ Eurekaserver/pom.xml </relativpath> </parent>
(6-4) Alle pom.xml-Konfigurationen von HelloServer:
<? XSI: Schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion> 4.0.0 </modelversion> <elemente> <uupample> com.exa. <artifactId>demoeurekaserver</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../eurekaserver/pom.xml</relativePath> </parent> <artifactId>helloserver</artifactId> <packaging>jar</packaging> <name>helloserver</name> <description>Demo project for Spring Boot</description> <Porpies> <startklasse> com.example.helloServer.helloServerApplication </startklasse> </properties> <Deponcies> <depeaponcy> <GroupID> org.springframework <gruppeID> org.springframework.boot </Groupid> <artifactId> Spring-Boot-Starter-Test </artifactID> <Scope> test </scope> </abhängig> </abhängig> </abhängig> </abhängig> <entellungen <artifactId> Spring-Cloud-Abhängigkeiten </artifactId> <version> $ {Spring-Cloud.version} </Version> <Typ> POM </type> <scope> import </scope> </abhängig> </abhängig> </abhängigencymanagement> <builds <artifactid> Spring-Boot-Maven-Plugin </artifactId> </plugin> </plugins> </build> </project>(6-5) HelloServers Application.yml-Konfiguration:
Server: Port: 5556 Spring: Anwendung: Name: HelloServer Eureka: Client: serviceurl: defaultZone: http: // localhost: 5555/eureka/
(6-6) Startup-Klasse von HelloServer:
@EnableEureKaServer @springBootApplication @restController Public Class HelloServerApplication {private endgültige Logger log = (logger) loggerFactory.getLogger (HelloServerApplication.ClASS); @Autowired Private DiscoveryClient Client; @RequestMapping (name = "/hello", method = requestMethod.get) public String index () {serviceInstance instance = client.getLocalServiceInstance (); log.info ("/Hallo, Host:" + instance.gethost () + ", service_id:" + instance.getServiceid ()); Rückkehr "Hallo Springcloud ~"; } public static void main (String [] args) {SpringApplication.run (HelloServerApplication.Class, Args); }}(7) Starten Sie Eurekaserver bzw. HelloServer und testen Sie:
(7-1) Besuchen Sie Eurekaserver: (Sie können die HelloServer-Informationen deutlich sehen)
(7-2) Besuchen Sie HelloServer:
(7-3) Überprüfen Sie die HelloServer-Konsoleninformationen:
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.