Installieren Sie zuerst die Konsulumgebung, finden Sie im vorherigen Artikel: https://www.vevb.com/article/141789.htm
Projektplanung, 2 Server, 1 Client
Schauen Sie sich zunächst die Serverseite an.
Eins: Server 1:
Projektabhängigkeit
<DepepecyManagement> <Depelencies> <Depopentcy> <gruppe> org.springframework <Depelencies> <Deponcy> <gruppe> org.springFramework.boot </Groupid> <artifactID> Spring-Boot-Actuator </artifactid> <version> 1.3.Release </Version> </abhängig> <ding <artifactid> Spring-Cloud-Starter-Consul-Discovery </artifactid> </abhängig> </abhängigkeiten>
Beachten Sie, dass das Hinzufügen von Spring-Boot-Aktuator so ist, dass das Projekt auf den /Gesundheitspfad zugreifen kann, um festzustellen, ob der Service gesund ist.
Paket com.pp.consul1; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootApplication; import org.springframework.cloud.client.discovery.enablediscoveryclient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.restController; @SpringbootApplication @enablediscoveryClient @restController Public Class Consulapp {@RequestMapping ("/home") public Object home () {System.out.println ("1111111111111111"); zurück "OK11"; } public static void main (String [] args) {SpringApplication.run (conulapp.class, args); }} application.Properties Konfigurationsinhalt
Server.port = 9955 Spring.Application.Name = conul-server-1 Spring.cloud.consul.host = 192.168.1.100 Spring.cloud.consul.port = 8500 Spring.consul.Enabled = True Spring.consul.discovery.Enabled = True.consul.con.con.con.con.Discovery.inStance.con.con.con.con.con.Con.Con.Discovery.inStance.Enabte = True.con.con.consul.Con.Discovery.inStance.Con.con.con.con.con.consul.Discovery. spring.cloud.consul.discovery.serviceName = tomcat spring.cloud.consul.discovery.hostname = 192.168.2.95 Spring.cloud.consul.discovery.port = $ {Server.port} spring.cloud.consul.discovery.HealthCheckurl = http: //192.168.2.95: 9955/Health Spring.cloud.consul.discovery.HealthCheckinterval = 10S Spring.cloud.consul.discovery.ags = Dev Ich habe meinen vorherigen Artikel gelesen und sollte mir über diese Konfigurationen sehr klar umgehen. Auf diese Weise wird ein Server konfiguriert und geschrieben.
Da wir die @EnablediscoveryClient -Annotation hinzugefügt haben, wird ein Dienst beim Start des Systems beim Konsul registriert. Der Service Name ist Tomcat und die ID ist Tomcat1
Die HTTP -API des Access -Konsuls wird wie folgt ausgegeben:
{ "Node":"192.168.1.100", "Address":"192.168.1.100", "ServiceID":"tomcat1", "ServiceName":"tomcat", "ServiceTags":["dev"], "ServiceAddress":"192.168.2.95", "ServicePort":9955, "ServiceNabletagoverride": false, "createIdex": 993, "modifyIndex": 1057}Zwei: Server 2
Projektabhängigkeiten sind die gleichen wie oben
Paket com.pp.consul2; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootApplication; import org.springframework.cloud.client.discovery.enablediscoveryclient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.restController; @SpringbootApplication @enablediscoveryClient @restController Public Class Consulapp {@RequestMapping ("/home") public Object home () {System.out.println ("222222222222222222222"); zurück "OK22"; } public static void main (String [] args) {SpringApplication.run (conulapp.class, args); }}application.Properties Konfigurationsinhalt:
server.port=9966 spring.application.name=Consul-Server-2 spring.cloud.consul.host=192.168.1.100 spring.cloud.consul.port=8500 spring.cloud.consul.enabled=true spring.cloud.consul.discovery.enabled=true spring.cloud.consul.discovery.instanceId=tomcat2 spring.cloud.consul.discovery.serviceName = tomcat spring.cloud.consul.discovery.hostname = 192.168.2.95 Spring.cloud.consul.discovery.port = $ {Server.port} spring.cloud.consul.discovery.HealthCheckurl = http: //192.168.2.95: 9966/Health Spring.cloud.consul.discovery.HealthCheckinterval = 10S Spring.cloud.consul.discovery.ags = test Drei: Kunde
Projektabhängigkeiten, nur Spring-Cloud-Starter-Consul-Discovery
application.Properties Konfigurationsinhalt:
server.port = 9977 Spring.Application.Name = Konsul-Client Spring.cloud.consul.host = 192.168.1.100 Spring.cloud.consul.port = 8500 Spring.cloud.consul.discovery.register = false
Beachten Sie, dass die Spring.cloud.consul.Discovery.register hier auf False konfiguriert werden muss, andernfalls wird ein Dienst beim Starten des Systems bei Consul registriert.
Paket com.pp.client; import org.springframework.beans.factory.annotation.autowired; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootApplication; import org.springframework.cloud.client.discovery.discoveryclient; import org.springframework.cloud.client.discovery.enablediscoveryclient; import org.springframework.cloud.client.loadBalancer.loadBalancerClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.restController; @SpringbootApplication @enablediscoveryClient @restController Public Class Consulclient {@autowired private loadBalancerClientClient loadBalancer; @Autowired Private DiscoveryClient DiscoveryClient; /** * Wählen Sie einen Dienst aus allen Diensten aus (Umfragen) */@RequestMapping ("/Discover") öffentliches Objekt Discover () {return loLeBalancer.choose ("tomcat"). GetUri (). ToString (); }/*** Alle Dienste erhalten*/@RequestMapping ("/dienste") öffentliche Objektdienste () {return DiscoveryClient.getInstances ("Tomcat"); } public static void main (String [] args) {SpringApplication.run (conulclient.class, args); }} Nach dem Start können Sie zugreifen /entdecken und / / / / /Dienste, um den Effekt anzuzeigen.
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.