Installez d'abord l'environnement du consul, reportez-vous à l'article précédent: https://www.vevb.com/article/141789.htm
Planification du projet, 2 serveurs, 1 client
Regardez d'abord le côté serveur.
Un: serveur 1:
Dépendance du projet
<Dependencymanagement> <Dependces> <Dedency> <GroupId> org.springframework.cloud </proncId> <Artifactive> printemps-cloud-consul-dépendances </ artifactid> <in version> 1.0.1.release </ version> <ypyle> pom </pype> <ccope> Import </cope> </sependency> </dependency> </dépendance> </scope> </sependency> </sédiction> </sendencyManagement> </dependency> </pedidency> </sendencyManagement> </sependency> </pedidency> </sendencyManagement> </sependency> </pedidency> </DependantMandmaneping> </sependency> </pedidency> </stependence> <Dependances> <Dedency> <GroupId> org.springframework.boot </rom grouped> <ArtifactId> printemps-boot-actuator </ artifactid> <version> 1.3.5.release </-version> </pedency> <dependency> <proupId> org.springframework.cloud </proupId> <ArtefactId> Spring-Cloud-Starter-Consul-Discovery </refactive> </Dependency> </Dependances>
Notez que l'ajout de Spring-Boot-Actuator est afin que le projet puisse accéder à la voie / la voie de la santé pour déterminer si le service est sain.
package 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 objet home () {System.out.println ("111111111111"); retourner "ok11"; } public static void main (String [] args) {SpringApplication.run (consulApp.class, args); }} contenu de configuration application.properties
server.port = 9955 Spring.Application.Name = consul-server-1 printemps.cloud.consul.host = 192.168.1.100 printemps.cloud.consul.port = 8500 printemps.cloud.consul.enabled = True Spring.cloud.consul.Instanceid = TOMCAT1 printemps.cloud.consul.discovery.serviceName = tomcat printemps.cloud.consul.discovery.hostname = 192.168.2.95 spring.cloud.consul.discovery.port = $ {server.port} printemps.cloud.consul.discovery.healthcheckurl = http: //192.168.2.95: 9955 / Health Spring.cloud.consul.discovery.healthcheckInterval = 10s Spring.cloud.consul.discovery.tags = dev J'ai lu mon article précédent et je devrais être très clair sur ces configurations. De cette façon, un serveur sera configuré et écrit.
Étant donné que nous avons ajouté l'annotation @enablediscoveryclient, lorsque le système commencera, un service sera enregistré auprès du consul. Le nom du service est Tomcat et l'ID est Tomcat1
L'API HTTP du consul d'accès est la sortie comme suit:
{"Node": "192.168.1.100", "adresse": "192.168.1.100", "serviceId": "Tomcat1", "ServiceName": "Tomcat", "Servicetags": ["Dev"], "ServiceAddress": "192.168.95", "Serviceport": 9955, "ServiceEnableTagoverride": false, "createIndex": 993, "modifierIndex": 1057}Deux: serveur 2
Les dépendances du projet sont les mêmes que ci-dessus
package 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 objet home () {System.out.println ("22222222222222222222"); retourner "ok22"; } public static void main (String [] args) {SpringApplication.run (consulApp.class, args); }}Application.Properties Configuration Contenu:
server.port = 9966 Spring.Application.Name = consul-server-2 spring.cloud.consul.host = 192.168.1.100 printemps.cloud.consul.port = 8500 printemps.cloud.consul.enabled = true.cloud.consul.InSanceid = TOMCAT2 printemps.cloud.consul.discovery.serviceName = tomcat printemps.cloud.consul.discovery.hostname = 192.168.2.95 spring.cloud.consul.discovery.port = $ {server.port} printemps.cloud.consul.discovery.healthcheckurl = http: //192.168.2.95: 9966 / Health Spring.cloud.consul.discovery.healthcheckInterval = 10s Spring.cloud.consul.discovery.tags = Test Trois: Client
Dépendances du projet, juste le printemps-starter-consul-découverte
Application.Properties Configuration Contenu:
server.port = 9977 spring.application.name = consul-client printemps.cloud.consul.host = 192.168.1.100 spring.cloud.consul.port = 8500 spring.cloud.consul.discovery.register = false
Notez que le printemps.cloud.consul.discovery.register ici doit être configuré sur False, sinon un service sera enregistré avec Consul au début du système.
package 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 loadBalancerClient LoadBalancer; @Autowired Private DiscoveryClient DiscoveryClient; / ** * Sélectionnez un service dans tous les services (sondage) * / @RequestMapping ("/ Discover") Object Public Discover () {return LoadBalancer.Choose ("Tomcat"). GetUri (). ToString (); } / ** * Obtenez tous les services * / @RequestMapping ("/ Services") Public Object Services () {return DiscoveryClient.getInstances ("tomcat"); } public static void main (String [] args) {SpringApplication.run (consulclient.class, args); }} Après le démarrage, vous pouvez accéder / découvrir et / des services pour afficher l'effet.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.