diff --git a/linkis-engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/executor/SparkPythonExecutor.scala b/linkis-engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/executor/SparkPythonExecutor.scala index 5439629ba3..3130ec0d3b 100644 --- a/linkis-engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/executor/SparkPythonExecutor.scala +++ b/linkis-engineconn-plugins/spark/src/main/scala/org/apache/linkis/engineplugin/spark/executor/SparkPythonExecutor.scala @@ -46,6 +46,7 @@ import org.apache.spark.sql.execution.datasources.csv.UDF import java.io._ import java.net.InetAddress +import java.security.SecureRandom import java.util import scala.collection.JavaConverters._ @@ -76,7 +77,7 @@ class SparkPythonExecutor(val sparkEngineSession: SparkEngineSession, val id: In private val lineOutputStream = new RsOutputStream val sqlContext = sparkEngineSession.sqlContext val SUCCESS = "success" - private lazy val py4jToken: String = RandomStringUtils.randomAlphanumeric(256) + private lazy val py4jToken: String = SecureRandom.getInstance("SHA1PRNG").nextInt(100000).toString private lazy val gwBuilder: GatewayServerBuilder = { val builder = new GatewayServerBuilder() diff --git a/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/GatewayAuthorizationFilter.java b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/GatewayAuthorizationFilter.java index c09aed0e8a..edeee8f170 100644 --- a/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/GatewayAuthorizationFilter.java +++ b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/GatewayAuthorizationFilter.java @@ -27,7 +27,6 @@ import org.apache.linkis.gateway.security.LinkisPreFilter$; import org.apache.linkis.gateway.security.SecurityFilter; import org.apache.linkis.gateway.springcloud.SpringCloudGatewayConfiguration; -import org.apache.linkis.rpc.constant.RpcConstant; import org.apache.linkis.server.Message; import org.apache.commons.lang3.StringUtils; @@ -135,7 +134,7 @@ private Route getRealRoute( exchange .getRequest() .mutate() - .header(RpcConstant.FIXED_INSTANCE, serviceInstance.getInstance()); + .header(SpringCloudGatewayConstant.FIXED_INSTANCE, serviceInstance.getInstance()); } return Route.async() .id(route.getId()) diff --git a/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/IpPriorityLoadBalancer.java b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/IpPriorityLoadBalancer.java index 206b31ccf5..9b18a2218a 100644 --- a/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/IpPriorityLoadBalancer.java +++ b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/IpPriorityLoadBalancer.java @@ -17,8 +17,6 @@ package org.apache.linkis.gateway.springcloud.http; -import org.apache.linkis.rpc.constant.RpcConstant; - import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -58,7 +56,7 @@ public Mono> choose(Request request) { ((RequestDataContext) request.getContext()) .getClientRequest() .getHeaders() - .get(RpcConstant.FIXED_INSTANCE); + .get(SpringCloudGatewayConstant.FIXED_INSTANCE); String clientIp = CollectionUtils.isNotEmpty(clientIpList) ? clientIpList.get(0) : null; ServiceInstanceListSupplier supplier = serviceInstanceListSupplierProvider.getIfAvailable(NoopServiceInstanceListSupplier::new); @@ -96,10 +94,10 @@ private Response getInstanceResponse( return new DefaultResponse( instances.get(ThreadLocalRandom.current().nextInt(instances.size()))); } - ServiceInstance chooseInstance = null; for (ServiceInstance instance : instances) { if (Objects.equals(ipAndPort[0], instance.getHost()) && Objects.equals(ipAndPort[1], String.valueOf(instance.getPort()))) { + logger.info("choose serviceInstance {}", instance); return new DefaultResponse(instance); } } diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/constant/RpcConstant.java b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/SpringCloudGatewayConstant.java similarity index 83% rename from linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/constant/RpcConstant.java rename to linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/SpringCloudGatewayConstant.java index 9fd0b81104..4a272a64a0 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/constant/RpcConstant.java +++ b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/SpringCloudGatewayConstant.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package org.apache.linkis.rpc.constant; +package org.apache.linkis.gateway.springcloud.http; -public class RpcConstant { +public class SpringCloudGatewayConstant { - public static final String FIXED_INSTANCE = "client-ip"; + public static final String FIXED_INSTANCE = "FIXED_INSTANCE"; } diff --git a/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/scala/org/apache/linkis/gateway/springcloud/SpringCloudGatewayConfiguration.scala b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/scala/org/apache/linkis/gateway/springcloud/SpringCloudGatewayConfiguration.scala index 6049bc3c3f..e96963589f 100644 --- a/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/scala/org/apache/linkis/gateway/springcloud/SpringCloudGatewayConfiguration.scala +++ b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/scala/org/apache/linkis/gateway/springcloud/SpringCloudGatewayConfiguration.scala @@ -23,7 +23,8 @@ import org.apache.linkis.gateway.parser.{DefaultGatewayParser, GatewayParser} import org.apache.linkis.gateway.route.{DefaultGatewayRouter, GatewayRouter} import org.apache.linkis.gateway.springcloud.http.{ GatewayAuthorizationFilter, - LinkisGatewayHttpHeadersFilter + LinkisGatewayHttpHeadersFilter, + LinkisLoadBalancerClientConfiguration } import org.apache.linkis.gateway.springcloud.websocket.SpringCloudGatewayWebsocketFilter import org.apache.linkis.rpc.Sender @@ -41,6 +42,7 @@ import org.springframework.cloud.gateway.route.builder.{ PredicateSpec, RouteLocatorBuilder } +import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients import org.springframework.context.annotation.{Bean, Configuration} import org.springframework.web.reactive.socket.client.WebSocketClient import org.springframework.web.reactive.socket.server.WebSocketService @@ -49,6 +51,7 @@ import org.slf4j.{Logger, LoggerFactory} @Configuration @AutoConfigureAfter(Array(classOf[GatewaySpringConfiguration], classOf[GatewayAutoConfiguration])) +@LoadBalancerClients(defaultConfiguration = Array(classOf[LinkisLoadBalancerClientConfiguration])) class SpringCloudGatewayConfiguration { import SpringCloudGatewayConfiguration._