From cc851158dbaca7a07de15060f72010cba6bc134e Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Wed, 10 May 2023 09:32:49 +0800 Subject: [PATCH] =?UTF-8?q?feature(forest):=20=E4=BD=BF=E7=94=A8=20spring?= =?UTF-8?q?=20cloud=20loadbalance=20=E7=BB=84=E4=BB=B6=E6=9D=A5=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service-forest/pom.xml | 4 ++++ .../SpringCloudDiscoveryInterceptor.java | 20 ++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/service-forest/pom.xml b/service-forest/pom.xml index efe6783..38e8d69 100644 --- a/service-forest/pom.xml +++ b/service-forest/pom.xml @@ -27,6 +27,10 @@ forest-spring-boot-starter 1.5.30 + + org.springframework.cloud + spring-cloud-starter-loadbalancer + \ No newline at end of file diff --git a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/configuration/SpringCloudDiscoveryInterceptor.java b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/configuration/SpringCloudDiscoveryInterceptor.java index cac04b4..69ccd88 100644 --- a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/configuration/SpringCloudDiscoveryInterceptor.java +++ b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/configuration/SpringCloudDiscoveryInterceptor.java @@ -1,20 +1,18 @@ package com.lanyuanxiaoyao.service.forest.configuration; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; import com.dtflys.forest.auth.BasicAuth; import com.dtflys.forest.http.ForestAddress; import com.dtflys.forest.http.ForestRequest; import com.dtflys.forest.interceptor.Interceptor; +import com.eshore.odcp.hudi.connector.Constants; import java.net.URL; -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.client.discovery.DiscoveryClient; +import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.stereotype.Component; /** @@ -25,10 +23,10 @@ import org.springframework.stereotype.Component; public class SpringCloudDiscoveryInterceptor implements Interceptor { private static final Logger logger = LoggerFactory.getLogger(SpringCloudDiscoveryInterceptor.class); - private final DiscoveryClient client; + private final LoadBalancerClient loadBalancerClient; - public SpringCloudDiscoveryInterceptor(DiscoveryClient client) { - this.client = client; + public SpringCloudDiscoveryInterceptor(LoadBalancerClient loadBalancerClient) { + this.loadBalancerClient = loadBalancerClient; } @Override @@ -37,16 +35,14 @@ public class SpringCloudDiscoveryInterceptor implements Interceptor { URL url = URLUtil.url(request.getUrl()); String host = url.getHost(); if (StrUtil.isNotBlank(host)) { - ImmutableList instances = Lists.immutable.ofAll(client.getInstances(host)); - if (ObjectUtil.isNotEmpty(instances)) { - int index = RandomUtil.randomInt(instances.size()); - ServiceInstance instance = instances.get(index); + ServiceInstance instance = loadBalancerClient.choose(host); + if (ObjectUtil.isNotNull(instance)) { request.setAddress(new ForestAddress(instance.getScheme(), instance.getHost(), instance.getPort())); } } // Basic auth - BasicAuth basicAuth = new BasicAuth("AxhEbscwsJDbYMH2", "cYxg3b4PtWoVD5SjFayWxtnSVsjzRsg4"); + BasicAuth basicAuth = new BasicAuth(Constants.SPRING_SECURITY_USERNAME, Constants.SPRING_SECURITY_PASSWORD_PLAIN); basicAuth.enhanceAuthorization(request); return Interceptor.super.beforeExecute(request);