Сначала установите среду консула, см. В предыдущей статье: https://www.vevb.com/article/141789.htm
Планирование проекта, 2 сервера, 1 клиент
Сначала посмотрите на сторону сервера.
ОДИН: Сервер 1:
Зависимость проекта
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-consul-dependencies</artifactId> <version>1.0.1.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependency> </dependency> </dependencyManagement> <dependencies> <depervice> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-actuator </artifactid> <sersive> 1.3.5.5.release </version> </depertive> <dependency> <groupd> org.springframework.cloud </GroupId> <strifactid> spring-cloud-starter-consuly-difacty-consuly </artifactid> </Зависимость> </зависимости>
Обратите внимание, что добавление Spring-Boot-Actuator заключается в том, что проект может получить доступ к пути /здоровья, чтобы определить, является ли услуга здоровой.
пакет com.pp.consul1; Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; Import org.springframework.cloud.client.discovery.enablediscoveryclient; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.restcontroller; @Springbootapplication @enablediscoveryclient @restcontroller public class consulapp {@requestmapping ("/home") public heous home () {system.out.println ("1111111111111111111111111111111); вернуть "OK11"; } public static void main (string [] args) {springApplication.run (onculapp.class, args); }} Application.properties Configuration Content
Server.port = 9955 Spring.Application.name = Consul-Server-1 Spring.Cloud.consul.host = 192.168.1.100 Spring.cloud.consul.port = 8500 Spring.cloud.consul.enabled = true Spring.consul.discovery.enabled.consul.consul.consul.discovery.consul.discovery.enabled.consul.consul.discover 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.tags = dev Я прочитал свою предыдущую статью, и я должен быть очень четким по поводу этих конфигураций. Таким образом, сервер будет настроен и записан.
Поскольку мы добавили аннотацию @enablediscoveryclient, когда система запускается, служба будет зарегистрирована в консул. Название службы - Томкат, а удостоверение личности - tomcat1
HTTP API консула доступа выводит следующее:
{"Узел": "192.168.1.100", "адрес": "192.168.1.100", "ServiceId": "tomcat1", "ServiceName": "Tomcat", "Servicetags": ["Dev"], "ServiceAddress": "192.168.95", "ServicePort": 9955, ":" 192.168.95 ": "ServiceEnableTagoverRide": false, "createIndex": 993, "ModifyIndex": 1057}Два: сервер 2
Зависимости проекта такие же, как и выше
пакет com.pp.consul2; Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; Import org.springframework.cloud.client.discovery.enablediscoveryclient; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.restcontroller; @Springbootapplication @enablediscoveryclient @RestController Public Class ConsulApp {@Requestmapping ("/Home") Public Object Home () {System.out.println ("222222222222222222222222"); вернуть "OK22"; } public static void main (string [] args) {springApplication.run (onculapp.class, args); }}Application.properties Configuration Content:
Server.port = 9966 Spring.Application.name = Консул-Сервер-2 Spring.Cloud.consul.host = 192.168.1.100 Spring.cloud.consul.port = 8500 Spring.cloud.consul.enabled = true Spring.consul.discovery.enabled.consul.consul.discovery.consul.discovery.enabled.consul.consul.discover 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.tags = тест Три: клиент
Зависимости проекта, только весна-клуб-стартер-консультант-раскрытие
Application.properties Configuration Content:
Server.port = 9977 Spring.Application.name = Consul-Client Spring.cloud.consul.host = 192.168.1.100 Spring.cloud.consul.port = 8500 Spring.consul.discovery.register = false
Обратите внимание, что Spring.cloud.consul.discovery.register здесь необходимо настроить на false, в противном случае служба будет зарегистрирована в консул, когда система запускается.
пакет com.pp.client; Импорт org.springframework.beans.factory.annotation.autowired; Импорт org.springframework.boot.springapplication; Импорт org.springframework.boot.autoconfigure.springbootapplication; Импорт org.springframework.cloud.client.discovery.discoveryclient; Import org.springframework.cloud.client.discovery.enablediscoveryclient; Импорт org.springframework.cloud.client.loadbalancer.loadbalancerclient; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.restcontroller; @Springbootapplication @enablediscoveryclient @restcontroller public class consulclient {@autowired private loadbalancerclient loadbalancer; @Autowired Private DiscoveryClient DiscoveryClient; /** * Выберите услугу из всех служб (опрос) */@Requestmapping ("/discover") public oclive () {return loadbalancer.choose ("tomcat"). Geturi (). ToString (); }/*** Получить All Services*/@Requestmapping ("/services") public Object Services () {return DiscoveryClient.getInstances ("tomcat"); } public static void main (string [] args) {SpringApplication.run (consulClient.class, args); }} После запуска вы можете получить доступ к /обнаружить и /Сервисы для просмотра эффекта.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.