veranschaulichen:
Ribbon ist eine Rolle in Spring-Cloud als Service-Verbraucher, über den der Kunde die Dienste des Dienstanbieters konsumieren kann.
In diesem Beispiel registriert der Dienstleister beispielsweise im Registrierungszentrum. Der Dienstanbieter bietet eine Serviceschnittstelle an, die eine Hallo -Zeichenfolge zurückgibt. Wir nennen diese Schnittstelle über ein Band und erhalten dann den Dienst des Dienstanbieters, ohne die Adresse des realen Dienstanbieters aufzudecken.
Prämisse:
Folgen Sie den vorherigen Tutorials, um ein Registrierungszentrum und einen Dienstleister zu erstellen. Hier können Sie ein Sharded -Registrierungszentrum verwenden oder es nicht verwenden. Dies ist vorübergehend ein Sharded -Registrierungszentrum, das vor der Verwendung eingerichtet wurde, und der Dienstanbieter kann nur eine bereitstellen.
Vorbereitung:
1. Starten Sie das Registrierungszentrum
Verwenden Sie nach dem vorherigen Tutorial Peer1 und Peer2, um das Registrierungszentrum von zwei Scherben zu starten. Wenn es sich um einen einzelnen Knoten handelt, können Sie das Projekt direkt starten.
Nach dem Start können Sie Localhost: 1111 oder Localhost: 1112 überprüfen, wie in der Abbildung gezeigt
2. Starten Sie den Dienstanbieter
Um die Lastausgleichssituation zu sehen, müssen zwei Dienstleister gestartet werden
Nach dem vorherigen Tutorial sind zwei Terminals aktiviert, um die angegebenen Ports zu starten (zwei identische Dienste können auch verschiedene Ports in ihren jeweiligen Konfigurationsdateien konfigurieren). Die beiden Terminalanweisungen lauten wie folgt:
CD targetJava -jar SpringClouddemo-0.0.1-Snapshot.jar--Server.port = 8080
CD targetJava -jar SpringClouddemo-0.0.1-Snapshot.jar--Server.port = 8081
Startergebnisse:
Zu diesem Zeitpunkt wurden die Vorbereitungen abgeschlossen
Text:
1. Bauwartungsbau
Erstellen Sie ein neues Maven -Projekt, ohne die Vorlage zu verwenden. Das Projekt heißt Robbin-Customer, und die Importabhängigkeiten werden wie folgt verwiesen:
<? 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.hellxz</groupId> <artifactId>ribbon-customer</artifactId> <version> 1.0-Snapshot </Version> <in <Strups> org. <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <version>RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> <version>RELEASE</version> </dependency> </dependency> </dependency> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>RELEASE</version> <Scope> import </scope> <typs
Erstellen Sie eine neue Springboot Startup -Klasse und übergeben Sie die RESTTEMPLAT
Paket com.cnblogs.hellxz; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootApplication; import org.springFramework.client.discovery.EnabledsCoseClyclication; org.springframework.cloud.client.loadBalancer.loadBalanced; import org.springFramework.context.annotation.bean; */ @EnablediscoveryClient @SpringBootApplicationPublic Class CustomerApplication {@Bean // Unterstützen Sie diese Bean für den Spring Container @loadBalanced // Lastausgleich durch diese Annotation rastTemplate rastTemplate () {return New RestTemplate zurückgeben (); } public static void main (String [] args) {SpringApplication.run (customerApplication.class, args); }}Erstellen Sie eine application.yml im SRC/Ressourcenverzeichnis für die Konfigurationsregistrierungsinformationen. In diesem Artikel wird ein Sharded Registration Center verwendet. Bitte konfigurieren Sie eine Defaltzone für einen einzelnen Knoten.
server: port: 9000 #Specify the service port for ribbon-customer spring: application: name: ribbon-customer #Specify the application name #Specify the eureka registration center address eureka: client: serviceUrl: defaultZone: http://peer1:1111/eureka/,http://peer2:1112/eureka/
Erstellen Sie einen CustomerController im Verzeichnis für Startklassen und injizieren Sie RastTemplate, um die Serviceschnittstelle aufzurufen
Paket com.cnblogs.hellxz; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation org.springFramework.web.bind.annotation.restController; org.springFramework.web.client.restTemplate;/** * @Author: HellXZ * @Description: Verbraucheranwendung * @date: 2018/4/16 15:54 */ @ @ @ @ @ @ @ @ @ @ @ @ @ @@UtrowGrowGrowGrowGrowGer - @ @ @ @ @ @ @ @@UtrowGrowGrowGrownge. rastTemplate private rastTemplate rastTemplate; @RequestMapping (value = "/ribbon-customer", method = requestMethod.get) public String HelloCustomer () {// kommentiert hier, weil ich es aus der Schnittstelle für den Straight Chain Access-Dienstanbieter zuvor herausgenommen habe, sodass das Ergebnis nicht zurückgegeben wird und ein Fehler gemeldet wird // Rückgabe restTemplate.getForentity ("http: // localhost: 8080/hello", string.class) .getBody (); // RastTemplate verwenden, um die MicroService-Schnittstelle zurückzurufen, retaReTemplate.GetForentity ("http: // hello-service/hello", string.class) .getBody (); }}HINWEIS: Zeile 24 des obigen Codes gibt eine Fehlerdemonstration an. Wenn ein Fehler beim Zugriff auf die Bandnote -Schnittstelle auftritt und eine weiße Fehlerseite angezeigt wird, lesen Sie bitte hier
Zu diesem Zeitpunkt wird die Anwendung der Bandverbraucher erstellt und der Test wird gestartet
prüfen:
Besuchen Sie http: // localhost: 1111/Wir haben festgestellt
Besuchen Sie http: // localhost: 9000/ribbon-kustomer
Denken Sie daran, dass die Informationen gedruckt werden, da zwei Dienstanbieter gestartet wurden, wenn es im Dienstanbieter -Projekt zugreifen kann, hier können Sie hier den Lastausgleich des Bandes testen.
Serviceanbieterausgabe anzeigen
Das zweite Terminal nicht und wird weiterhin in den Auflösungsendpunkten über die Konfigurationslinie angezeigt
Aktualisieren Sie die Seite, um das Terminal anzuzeigen. Da die Standard -Lastausgleichsimplementierung von Ribbon befragt ist, kann es mehrmals auf denselben Dienst zugreifen. Aktualisieren Sie die Seite mehrmals, und sie wird auf jeden Fall in einer anderen Terminik angezeigt!
Abschluss:
Als Serviceverbraucher kann das Band die Schnittstellenadresse dem Benutzer nicht vorstellen, während die vom Dienstanbieter bereitgestellten Dienste erfasst werden. Es ist ersichtlich, dass beim Aufrufen der Serviceschnittstelle hier der Service -Name des Dienstanbieters anstelle des Hostnamens verwendet wird. Diese Funktion ist im Service Governance Framework sehr wichtig.
Da ich zuerst den Jhipster -Generator gelernt habe, möchte ich sie im Voraus vorhergesagt, und dann wird es eine Technologie namens Feign geben, die das Band ersetzen kann. Diese Serie von Blogs ist alle Studiennotizen. Im tatsächlichen Betrieb kann es eine Situation geben, in der eine Anwendung sowohl ein Dienstleister als auch ein Dienstleistungsverbraucher ist.
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.