diff --git a/pom.xml b/pom.xml index 8da5c7b..de4be18 100644 --- a/pom.xml +++ b/pom.xml @@ -74,6 +74,12 @@ org.springframework.cloud spring-cloud-starter-loadbalancer + + + org.springframework.cloud + spring-cloud-commons + + diff --git a/src/main/java/com/sczx/gateway/config/LoadBalancerConfig.java b/src/main/java/com/sczx/gateway/config/LoadBalancerConfig.java new file mode 100644 index 0000000..dacd4ad --- /dev/null +++ b/src/main/java/com/sczx/gateway/config/LoadBalancerConfig.java @@ -0,0 +1,7 @@ +package com.sczx.gateway.config; + +import org.springframework.context.annotation.Configuration; + +@Configuration +public class LoadBalancerConfig { +} diff --git a/src/main/java/com/sczx/gateway/controller/TestController.java b/src/main/java/com/sczx/gateway/controller/TestController.java index 48c7dbc..107f4e0 100644 --- a/src/main/java/com/sczx/gateway/controller/TestController.java +++ b/src/main/java/com/sczx/gateway/controller/TestController.java @@ -3,6 +3,7 @@ package com.sczx.gateway.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; +import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -13,12 +14,22 @@ public class TestController { @Autowired private DiscoveryClient discoveryClient; + + @Autowired + private LoadBalancerClient loadBalancerClient; + @GetMapping("/test") public String test() { List instances = discoveryClient.getInstances("sczx_user"); if (instances == null || instances.isEmpty()) { return "No instances found!"; } - return "Found instance: " + instances.get(0).getUri(); + + ServiceInstance instance = loadBalancerClient.choose("sczx_user"); + if (instance == null) { + return "No instance chosen!"; + } + + return "Chosen instance: " + instance.getUri(); } }