From d0a2120f29ec691255e15f1368ab6fda06fca080 Mon Sep 17 00:00:00 2001 From: zhangli <123879394@qq.com> Date: Mon, 7 Jul 2025 00:36:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=8E=A5=E5=8F=A3=E8=B0=83?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++++++ .../com/sczx/gateway/config/LoadBalancerConfig.java | 7 +++++++ .../com/sczx/gateway/controller/TestController.java | 13 ++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/sczx/gateway/config/LoadBalancerConfig.java 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(); } }