먼저 영사 환경을 설치하고 이전 기사를 참조하십시오 : https://www.vevb.com/article/141789.htm
프로젝트 계획, 2 개의 서버, 1 개의 클라이언트
먼저 서버 측을보십시오.
하나 : 서버 1 :
프로젝트 의존성
<pectionencymanagement> <pectionilency> <pectinement> <groupId> org.springframework.cloud </groupid> <artifactid> Spring-Cloud-Consul-Delpendencies </artifactid> <버전> 1.0.1. Release </version> pom </type> <creption> import </scope> </dependency> </dependency> <pectionies> <pectionency> <groupid> org.springframework.boot </groupId> <artifactid> Spring-Boot-Actuator </artifactid> <3.3.5. Release </version> </dependency> <groupid> org.springframework.cloud> <artifactid> 스프링-클라우드 스타터-헌신적 </artifactid> </의존성> </의존성>
스프링 부츠 액터가 추가하면 프로젝트가 /건강 경로에 액세스하여 서비스가 건강한 지 여부를 결정할 수 있습니다.
패키지 com.pp.consul1; org.springframework.boot.springApplication import; 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 ( "11111111111111"); "ok11"을 반환합니다. } public static void main (String [] args) {springApplication.run (consulapp.class, args); }} Application.Properties 구성 컨텐츠
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.cloud.consul.discovery.enabled = true spring.cloud.consul.discovery.instancey 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.consul.discovery.tags = dev 이전 기사를 읽었으며 이러한 구성에 대해 매우 명확해야합니다. 이런 식으로 서버는 구성 및 작성됩니다.
@EnableDiscoveryClient 주석을 추가 했으므로 시스템이 시작되면 서비스가 영사에 등록됩니다. 서비스 이름은 Tomcat이고 ID는 tomcat1입니다.
액세스 영사의 HTTP API는 다음과 같이 출력됩니다.
{ "Node": "192.168.1.100", "주소": "192.168.1.100", "ServiceD": "Tomcat1", "ServiceName": "Tomcat", "ServiceTags": [ "Dev"], "Serviceaddress": "19955,"Servicepport ":"Servicepport ":"Dev "]. "ServiceEnableTagoverride": False, "CreateIndex": 993, "ModifyIndex": 1057}둘 : 서버 2
프로젝트 종속성은 위와 동일합니다
패키지 com.pp.consul2; org.springframework.boot.springApplication import; 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 ( "22222222222222222222222"); "ok22"를 반환합니다. } public static void main (String [] args) {springApplication.run (consulapp.class, args); }}Application.Properties 구성 컨텐츠 :
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.instancey 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.consul.discovery.tags = test 셋째 : 클라이언트
프로젝트 종속성, 스프링 클라우드 스타터 소송 중단
Application.Properties 구성 컨텐츠 :
Server.port = 9977 spring.application.name = consul-client spring.cloud.consul.host = 192.168.1.100 spring.cloud.consul.port = 8500 spring.cloud.consul.discovery.register = false
여기에서 spring.cloud.consul.discovery.register는 false로 구성되어야합니다. 그렇지 않으면 시스템이 시작될 때 서비스가 영사에 등록됩니다.
패키지 com.pp.client; org.springframework.beans.factory.annotation.autowired; org.springframework.boot.springApplication import; org.springframework.boot.autoconfigure.springbootapplication import; org.springframework.cloud.client.discovery.DiscoveryClient; 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 Object Discover () {return loadbalancer.choose ( "tomcat"). geturi (). toString (); }/*** 모든 서비스 받기*/@requestmapping ( "/services") public object services () {return discoveryclient.getinstances ( "tomcat"); } public static void main (String [] args) {springApplication.run (consulclient.class, args); }} 시작 후 액세스 /발견 및 /서비스를 통해 효과를 볼 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.