ก่อนอื่นติดตั้งสภาพแวดล้อมกงสุลโปรดดูบทความก่อนหน้า: https://www.vevb.com/article/141789.htm
การวางแผนโครงการ 2 เซิร์ฟเวอร์ลูกค้า 1 ราย
ก่อนอื่นดูที่ฝั่งเซิร์ฟเวอร์
หนึ่ง: เซิร์ฟเวอร์ 1:
การพึ่งพาโครงการ
<การพึ่งพาการจัดการ> <การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.cloud </groupId> <ratifactId> Spring-Cloud-Consul-Dependencies </artifactid> <Senture INDERNISCIENCE> <DERNISCANCE> <POPEAGECY <การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Actuator </artifactid> <sersion> 1.3.5.Release </Side> <ArtIfactId> Spring-Cloud-Starter-Consul-Discovery </artifactId> </dermentency> </pendencies>
โปรดทราบว่าการเพิ่ม Spring-Boot-ACTUATOR นั้นเพื่อให้โครงการสามารถเข้าถึง /เส้นทางสุขภาพเพื่อตรวจสอบว่าบริการมีสุขภาพดีหรือไม่
แพ็คเกจ com.pp.consul1; นำเข้า org.springframework.boot.springapplication; นำเข้า org.springframework.boot.autoconfigure.springbootapplication; นำเข้า org.springframework.cloud.client.discovery.enablediscoveryclient; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.restcontroller; @springbootapplication @enablediscoveryClient @RestController คลาสสาธารณะ consulapp {@requestmapping ("/home") วัตถุสาธารณะบ้าน () {system.out.println ("11111111111111"); กลับ "OK11"; } โมฆะคงที่สาธารณะหลัก (สตริง [] 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.consul.discovery.enabled 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.consul.discovery.tags = Devevive ฉันได้อ่านบทความก่อนหน้าของฉันและฉันควรจะชัดเจนเกี่ยวกับการกำหนดค่าเหล่านี้ ด้วยวิธีนี้เซิร์ฟเวอร์จะได้รับการกำหนดค่าและเขียน
เนื่องจากเราได้เพิ่มคำอธิบายประกอบ @enablediscoveryClient เมื่อระบบเริ่มต้นบริการจะลงทะเบียนกับกงสุล ชื่อบริการคือ tomcat และ id คือ tomcat1
HTTP API ของกงสุลการเข้าถึงคือเอาต์พุตดังนี้:
{"Node": "192.168.1.100", "ที่อยู่": "192.168.1.100", "ServiceId": "Tomcat1", "ServiceName": "Tomcat", "ServiceTags": "ServiceEnableTagoverride": False, "Createindex": 993, "ModifyIndex": 1057}สอง: เซิร์ฟเวอร์ 2
การพึ่งพาโครงการเหมือนกับข้างต้น
แพ็คเกจ com.pp.consul2; นำเข้า org.springframework.boot.springapplication; นำเข้า org.springframework.boot.autoconfigure.springbootapplication; นำเข้า 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("222222222222222222222"); กลับ "OK22"; } โมฆะคงที่สาธารณะหลัก (สตริง [] 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.consul.discovery.enabled 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 เนื้อหาการกำหนดค่า:
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 ที่นี่จะต้องกำหนดค่าเป็นเท็จมิฉะนั้นบริการจะลงทะเบียนกับกงสุลเมื่อระบบเริ่มต้น
แพ็คเกจ com.pp.client; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.boot.springapplication; นำเข้า org.springframework.boot.autoconfigure.springbootapplication; นำเข้า 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 คลาสสาธารณะ consulClient {@AutoWired Private LoadBalanCerClient LoadBalancer; @autowired DiscoveryClient DiscoveryClient; /** * เลือกบริการจากบริการทั้งหมด (การสำรวจ) */@requestmapping ("/discover") วัตถุสาธารณะค้นพบ () {return loadbalancer.choose ("tomcat"). geturi (). toString (); }/*** รับบริการทั้งหมด*/@requestmapping ("/บริการ") บริการวัตถุสาธารณะ () {return discoveryClient.getInstances ("tomcat"); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (consulclient.class, args); - หลังเริ่มต้นคุณสามารถเข้าถึง /ค้นพบและ /บริการเพื่อดูเอฟเฟกต์
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น