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.
Spring Cloud Eureka ist Teil der Spring Cloud Netflix Microservices Suite, die hauptsächlich für die Ausführung von Service -Governance -Funktionen in der Microservice -Architektur verantwortlich ist.
In diesem Artikel wird einfache kleine Beispiele verwendet, um den Service über Eureka zu verwalten:
=============== Ich bin die wunderschöne Trennlinie.
1. Erstellen Sie ein Service -Registrierungszentrum
Listen Sie zunächst die vollständige Verzeichnisstruktur auf:
Der Bauprozess ist wie folgt:
1. Erstellen Sie ein Maven -Projekt: Eureka (spezifische Implementierung weggelassen)
2. Ändern Sie die POM -Datei und stellen Sie Abhängigkeiten ein
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sam</groupId> <artifactId>eureka</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <SupructId> org.springFramework.boot </GroupId> <artifactId> Spring-Boot-Starter-Parent </artifactId> <version> 1.5.1.Release </Version> </parent> <Eigenschaften> <Javaversion> 1.8 </javaversion> </</</</<! <SupructId> org.springFramework.cloud </GroupId> <artifactId> Spring-Cloud-Abhängigkeiten </artifactId> <version> camden.sr6 </Version> <Typs> pom </type> <Scope> import </scope> </abhängig> </abhängig> </abhängig> </abhängig> <! <gruppe> org.springframework.cloud </Groupid> <artifactId> Spring-Cloud-Starter-Eureka-Server </artifactid> </abhängig> </abhängig> </abhängig> </projekt>
3. Erstellen Sie eine Startklasse
/** * * @enableeurekaserver * Das Service Registration Center gibt an, dass das Projekt eureka */@enableEureKaserver@SpringBootapplicationPublic Class Eurekaapp {public static void main (String [] args) {Springapplication.run (Eurekaapp.ClASS, CLIDS, ARGS); }} 4. Konfigurieren Sie die Datei application.Properties
#SETTE DER TOMCAT Service Portnummer Server.port = 1111#Setzen Sie den Service-Namen Spring.Application Leureka.client.serviceurl.defaultzone = http: // $ {eureka.instance.hostname}: $ {server.port}/eureka 5. Starten Sie den Service und greifen Sie darauf zu, und wir werden ein Bild wie dieses sehen:
2. Registrieren Sie einen Dienstleister
Listen Sie zunächst die vollständige Verzeichnisstruktur auf:
Der Bauprozess ist wie folgt:
1. Erstellen Sie ein Maven-Projekt: Hallo-Service (spezifische Implementierung weggelassen)
2. Ändern Sie die POM -Datei und stellen Sie Abhängigkeiten ein
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sam</groupId> <artifactId>hello-service</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <properties> <javaVersion>1.8</javaVersion> </properties> <dependencyManagement> <dependencies> <dependency> <SupructId> org.springFramework.cloud </GroupId> <artifactId> Spring-Cloud-Abhängigkeiten </artifactId> <version> camden.sr6 </Version> <typs> pom </type> <scope> import </scope> </abhängig> </abhängig> </abhängig> </abhängig> <! <gruppe> org.springframework.cloud </Groupid> <artifactId> Spring-Cloud-Starter-Eureka </artifactid> </abhängig> </abhängig> </abhängig> </project>
3. Erstellen Sie eine Startklasse
/***** @enablediscoveryClient* Lassen Sie den Dienst den Eureka -Server verwenden*, um die Registrierung und Erkennung von Dienstleistungen zu implementieren. }}
4. Erstellen Sie einen Controller
@RestControllerPublic Class HelloConTroller {logger logger = loggerfactory.getLogger (hellocontroller.class); @Autowired DiscoveryClient DiscoveryClient; @RequestMapping ("/hello") public String hello () {serviceInStance Instance = DiscoveryClient.getLocalServiceInstance (); // Service -ID logger.info ("*********" + instance.getServiceid ()); Rückkehr "Hallo, das ist Hallo-Service"; }} 5. Konfigurieren Sie die Datei application.Properties
server.port = 9090#Setzen Sie den Servicenamen Spring.Application.Name = Hello-Service#Setzen Sie die URL des Service Registration Center. Dieser Service muss sich beim Service Registration Center eureka.client.serviceurl.defaultzone = http: // localhost: 1111/eureka registrieren
6. Start und testen
1.) Nach dem Start hat die Hello-Service-Konsole dieses Wort (xxx repräsentiert Ihren PC-Namen).
Kopieren Sie den Code wie folgt: Registrierte Instanz Hallo-Service/XXX: Hello-Service: 9090 mit Status Up (replication = false)
Die folgenden Wörter werden auf der Eureka -Konsole gedruckt (xxx repräsentiert Ihren PC -Namen)
Kopieren Sie den Code wie folgt: Registrierte Instanz Hallo-Service/XXX: Hello-Service: 9090 mit Status Up (replication = false)
2.) Besuchen Sie örtlich: 1111 erneut und Sie werden feststellen, dass im Registrierungszentrum Dienste registriert sind
3. Service Discovery and Consum
Die vollständige Verzeichnisstruktur lautet wie folgt:
Bauprozess:
1. Erstellen Sie ein Maven -Projekt (spezifische Implementierung weggelassen)
2. Ändern Sie die POM -Datei und stellen Sie Abhängigkeiten ein
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sam</groupId> <artifactId>hello-consumer</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <properties> <javaVersion>1.8</javaVersion> </properties> <dependencyManagement> <dependencies> <dependency> <gruppeID> org.springFramework.cloud </GroupId> <artifactId> Spring-Cloud-Abhängigkeiten </artifactID> <version> camden.sr6 </Version> <Typs> pom </type> <scope> import </scope> </abhängig> </abhängig> </abhängig> <! <gruppe> org.springframework.cloud </Groupid> <artifactid> Spring-Cloud-Starter-Eureka </artifactid> </abhängig> <!-Die Abhängigkeit von der Bande einführen, wird zum Erreichen von Lastausgleich verwendet. Wir verwenden es hier nur, daher werden wir es an anderer Stelle nicht vorstellen-> <Depopentcy> <gruppe> org.springFramework.cloud </Groupid> <artifactid> Spring-Cloud-Starter-Ribbon </artifactid> </abhängig> </abhängig> </project>
Es gibt mehr Bandabhängigkeiten als Hello-Service-Dienstleister hier
3. Erstellen Sie eine Startklasse
@EnablediscoveryClient@SpringBootApplicationPublic Class ConsumerApp {//@bean wird auf die Methode angewendet und verwendet, um den Methode -Rückgabewert für bean zu setzen @Bean @LoadBalanced //@loadBalanced, um das Ladungsausgleich public rastTemplate rastTemplate () {neu rastTemplate zurückzugeben (); } public static void main (String [] args) {SpringApplication.run (ConsumerApp.class, Args); }}@EnablediscoveryClient sollte auch hier verwendet werden
4. Erstellen Sie einen Controller
@RestControllerPublic Class ConsumerController {// Die hier injizierte RESTTEMPLATE ist eine Instanz, die über @Bean in com.sam.consumerApp @Autowired rastTemplate rastTemplate konfiguriert ist; @RequestMapping ("/hello-consumer") public String helloconsumer () {// den Hello-Service-Dienst anrufen, beachten Sie, dass der Dienstname hier verwendet wird, nicht der spezifische IP+Port rastTemplate.getforObject ("http: // hello-sservice/hello", string.class); Rückkehr "Hallo Konsumenten Finish !!!"; }}5. Konfigurieren Sie die Datei application.Properties
server.port = 9999spring.application.name = hello-consumereureka.client.serviceurl.defaultZone = http: // localhost: 1111/eureka#Das Konfigurationsprojekt hier ist der gleiche wie der Serviceanbieter Hallo-Service
6. Start, Test 1.) Starten Sie Eureka. Um die Auswirkungen der Verantwortung für das Gleichgewicht zu zeigen, startet unser Hello-Service zwei Dienste. Die spezifischen Schritte zum Starten von zwei Diensten sind wie folgt
Das obige ist der Startschritt von Hello-Service1 mit der Portnummer 9090; Die gleiche Methode ist mit der Portnummer 9091 auf Hello-Service2 gesetzt (die spezifische Implementierung wird weggelassen).
2.) Hello-Consumer starten
3.) Besuchen Sie http: // localhost: 1111/noch einmal und Sie werden feststellen
4.) Nachdem Sie mehrmals unter http: // localhost: 9999/Hello-Consumerer besucht wurden, werden Sie feststellen, dass Hello-Service1 und Hello-Service2 wiederum angerufen werden (verantwortlich für das Gleichgewicht), und Sie können den Inhalt durch die Konsole von beiden bestätigen. Ja, das ist der Druck)
4. Zusammenfassung
Die obigen Beispiele erkennen die grundlegende Dienstleistungsregierung:
PS: Lassen Sie mich hier erklären, dass die IDE, die ich verwende, die Spring Tool Suite ist. Interessierte Freunde können auf Baidu darüber erfahren.
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.