Wir haben die beiden Grundkomponenten des Registrierungszentrums und des Dienstleisters abgeschlossen. In diesem Artikel wird der Anrufservice mithilfe des Spring Cloud -Bandes eingeführt, um das Ausgleich auf der Client -Seite zu laden.
Lastausgleich (LB: Lastausgleich) ist das erste Problem, das gelöst werden soll. Vor Microservices war die LB -Lösung hauptsächlich eine zentralisierte Lastausgleichslösung und ein weiteres unabhängiges LB zwischen Service -Verbrauchern und Dienstleister. Das LB ist normalerweise Hardware wie F5 oder Software-basiertes Hardware wie VS, Haproxy usw. Es gibt eine Adress-Mapping-Tabelle für alle Dienste auf der LB. Wenn der Service -Verbraucher einen Zieldienst anruft, wird zunächst eine Anfrage an die LB eingeleitet. Die LB verwendet eine bestimmte Richtlinie (z. B. Round-Robin), um die Anforderung an den Zieldienst zu laden.
Die Entstehung von Microservices bietet eine weitere Idee für die Implementierung von LB: Um die Funktionen von LB in den Prozess der Dienstverbraucher in Form von Bibliotheken zu integrieren, anstatt von einem zentralisierten Gerät oder Server bereitzustellen. Diese Lösung wird als Softlastausgleich oder Client -Lastausgleich bezeichnet. In der Frühlingswolke im Zusammenhang mit der Serviceregistrierungsfunktion von Eureka implementiert das Ribbon Sub-Project Lastausgleich für den Rest-Client.
Bedienen Verbraucher mit Frühlingswolkenband
Erstellen Sie ein neu
Erstellen Sie ein neues Subprojekt für Spring-Cloud-Proben-Tutorial-Consumer unter der Probe des Spring-Cloud-Stichprobens
Fügen Sie Ribbon- und Eureka -Abhängigkeiten hinzu
<Depelencies> <Depopentcy> <gruppe> org.springFramework <CruupId> org.springframework.boot </gruppeId> <artifactid> Spring-Boot-Starter-Web </artifactId> </abhängig> </abhängig>
Konfigurieren Sie applicationIn.properties, Registercenter -Adresse
Spring.Application.Name = ConsumerServer.port = 30001eureka.client.service-url.defaultZone = http: // localhost: 10001/eureka/, http: // localhost: 10002/eureka/
Schreiben Sie UserController, fügen Sie @loadBalanced Annotation hinzu, aktivieren Sie das Ausgleich von Ribbon Last
@Controller @RequestMapping ("Benutzer") public class userController {@bean @loadBalanced rastTemplate initrestTemplate () {return New RestTemplate (); } @Autowired private rastTemplate rastTemplate; @RequestMapping ("hinzufügen") @ResponseBody public String add (String -Benutzername, String Age) {retRestTemplate.getForentity ("http: // produzent/user/add", String.class, Benutzername, Alter) .getBody (); }}Schreiben Sie Verbraucheranwendungen, fügen Sie @EnableeureKaclient hinzu, aktivieren Sie die Serviceregistrierung
@EnableEureKaclient@SpringbootApplicationPublic Class ConsumerApplication {public static void main (String [] args) {Springapplication.run (ConsumerApplication.ClASS, Args); }}Cluster -Bereitstellungsproduzent
Um den Produzenten des Clusters zu simulieren, werden neue Anwendungsprofile1.Properties und Anwendungsprofile2.Properties im Produzentenprojekt erstellt.
Anwendungsprofile1.Properties
Spring.Application.Name = Produzentserver.port = 20001eureka.client.service-url.defaultzone = http: // localhost: 10001/eureka/, http: // localhost: 10002/eureka/
Anwendungsprofile2.Properties
Spring.Application.Name = Produzentserver.port = 20002eureka.client.service-url.DefaultZone = http: // localhost: 10001/eureka/, http: // localhost: 10002/eureka/
Um den Lasteffekt zu testen, haben wir den Port des aufgerufenen Dienstes eingegeben
@Controller@RequestMapping ("Benutzer") öffentliche Klasse UserController {private logger logger = loggerfactory.getLogger (getClass ()); @Autowired Private DiscoveryClient Client; @RequestMapping ("add") @ResponseBody public String adduser (String -Benutzername, String Age) {return "Erfolg von" + client.getLocalServiceInstance (). Gethost () + ":" + client.getLocalServiceInstance (). GetPort (); }}Starten Sie den Test
Starten Sie das Registrierungszentrum
Konfigurieren Sie aktive Profile in Profil1 bzw. Profil2, starten Sie zweimal und vervollständigen Sie das Service -Start des Registrierungsclusters.
Starten Sie einen Dienstleister
Starten Sie den Dienstanbieter auf die gleiche Weise wie oben.
Diene der Verbraucher
Der Dienstanbieter kann eigenständig erfolgen, und die Verbraucheranwendung kann normal gestartet werden.
verifizieren
Geben Sie http: // localhost: 30001/user/add aus dem Browser ein
Besuchen Sie noch einmal:
Es ist ersichtlich, dass unser Lastausgleichsanrufdienst erfolgreich war und der Standard für das Rotationstraining aus dem Lastausgleich besteht.
Zusammenfassen
Dieser Artikel führt und vervollständigt den Anruf zur Verwendung des Spring Cloud -Bandes für den Client -Lastausgleich.
Als nächstes werden wir weiterhin vorstellen, wie die Spring Cloud für die Serviceüberwachung verwendet wird.
Quellcode herunterladen
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.