From 8794f16dfaece37d6a1b2d795238a8581243df55 Mon Sep 17 00:00:00 2001 From: peacewong Date: Thu, 21 Mar 2024 21:30:27 +0800 Subject: [PATCH 01/13] Add administrator judgment --- .../ConfigurationTemplateRestfulApi.java | 15 ++++++++++--- .../restful/DatasourceAccessRestfulApi.java | 10 +++++++-- .../restful/DatasourceEnvRestfulApi.java | 7 +++++- .../restful/DatasourceTypeKeyRestfulApi.java | 8 +++++-- .../restful/DatasourceTypeRestfulApi.java | 9 ++++++-- .../restful/GatewayAuthTokenRestfulApi.java | 22 +++++++++++++++---- 6 files changed, 57 insertions(+), 14 deletions(-) diff --git a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/ConfigurationTemplateRestfulApi.java b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/ConfigurationTemplateRestfulApi.java index d6db4f7571..657d4531f3 100644 --- a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/ConfigurationTemplateRestfulApi.java +++ b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/ConfigurationTemplateRestfulApi.java @@ -21,6 +21,7 @@ import org.apache.linkis.basedatamanager.server.request.ConfigurationTemplateSaveRequest; import org.apache.linkis.basedatamanager.server.response.EngineLabelResponse; import org.apache.linkis.basedatamanager.server.service.ConfigurationTemplateService; +import org.apache.linkis.common.conf.Configuration; import org.apache.linkis.server.Message; import org.apache.linkis.server.utils.ModuleUserUtils; @@ -49,7 +50,11 @@ public class ConfigurationTemplateRestfulApi { @RequestMapping(path = "/save", method = RequestMethod.POST) public Message add( HttpServletRequest httpRequest, @RequestBody ConfigurationTemplateSaveRequest request) { - ModuleUserUtils.getOperationUser(httpRequest, "save a configuration template"); + String username = + ModuleUserUtils.getOperationUser(httpRequest, "save a configuration template"); + if (!Configuration.isAdmin(username)) { + return Message.error("User '" + username + "' is not admin user[非管理员用户]"); + } if (Objects.isNull(request) || StringUtils.isEmpty(request.getEngineLabelId()) || StringUtils.isEmpty(request.getKey()) @@ -67,8 +72,12 @@ public Message add( @ApiOperation(value = "delete", notes = "delete a configuration template", httpMethod = "DELETE") @RequestMapping(path = "/{keyId}", method = RequestMethod.DELETE) public Message delete(HttpServletRequest httpRequest, @PathVariable("keyId") Long keyId) { - ModuleUserUtils.getOperationUser( - httpRequest, "delete a configuration template, keyId: " + keyId); + String username = + ModuleUserUtils.getOperationUser( + httpRequest, "delete a configuration template, keyId: " + keyId); + if (!Configuration.isAdmin(username)) { + return Message.error("User '" + username + "' is not admin user[非管理员用户]"); + } Boolean flag = configurationTemplateService.deleteConfigurationTemplate(keyId); return Message.ok("").data("success: ", flag); } diff --git a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceAccessRestfulApi.java b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceAccessRestfulApi.java index 7d39d493bd..4b0df0051d 100644 --- a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceAccessRestfulApi.java +++ b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceAccessRestfulApi.java @@ -107,8 +107,14 @@ public Message add( httpMethod = "DELETE") @RequestMapping(path = "/{id}", method = RequestMethod.DELETE) public Message remove(HttpServletRequest request, @PathVariable("id") Long id) { - ModuleUserUtils.getOperationUser( - request, "Remove a Datasource Access Record,id:" + id.toString()); + String username = + ModuleUserUtils.getOperationUser( + request, "Remove a Datasource Access Record,id:" + id.toString()); + + if (!Configuration.isAdmin(username)) { + return Message.error("User '" + username + "' is not admin user[非管理员用户]"); + } + boolean result = datasourceAccessService.removeById(id); return Message.ok("").data("result", result); } diff --git a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceEnvRestfulApi.java b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceEnvRestfulApi.java index cf2953b0e4..e6029c761c 100644 --- a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceEnvRestfulApi.java +++ b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceEnvRestfulApi.java @@ -97,7 +97,12 @@ public Message add(HttpServletRequest request, @RequestBody DatasourceEnvEntity httpMethod = "DELETE") @RequestMapping(path = "/{id}", method = RequestMethod.DELETE) public Message remove(HttpServletRequest request, @PathVariable("id") Long id) { - ModuleUserUtils.getOperationUser(request, "Remove a Datasource Env Record,id:" + id.toString()); + String username = + ModuleUserUtils.getOperationUser( + request, "Remove a Datasource Env Record,id:" + id.toString()); + if (!Configuration.isAdmin(username)) { + return Message.error("User '" + username + "' is not admin user[非管理员用户]"); + } boolean result = datasourceEnvService.removeById(id); return Message.ok("").data("result", result); } diff --git a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceTypeKeyRestfulApi.java b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceTypeKeyRestfulApi.java index 557c753227..b8ef65df5b 100644 --- a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceTypeKeyRestfulApi.java +++ b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceTypeKeyRestfulApi.java @@ -99,8 +99,12 @@ public Message add( httpMethod = "DELETE") @RequestMapping(path = "/{id}", method = RequestMethod.DELETE) public Message remove(HttpServletRequest request, @PathVariable("id") Long id) { - ModuleUserUtils.getOperationUser( - request, "Remove a Datasource Type Key Record,id:" + id.toString()); + String username = + ModuleUserUtils.getOperationUser( + request, "Remove a Datasource Type Key Record,id:" + id.toString()); + if (!Configuration.isAdmin(username)) { + return Message.error("User '" + username + "' is not admin user[非管理员用户]"); + } boolean result = datasourceTypeKeyService.removeById(id); return Message.ok("").data("result", result); } diff --git a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceTypeRestfulApi.java b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceTypeRestfulApi.java index 9fc8ea9d73..3c47d9385f 100644 --- a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceTypeRestfulApi.java +++ b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/DatasourceTypeRestfulApi.java @@ -95,8 +95,13 @@ public Message add(HttpServletRequest request, @RequestBody DatasourceTypeEntity httpMethod = "DELETE") @RequestMapping(path = "/{id}", method = RequestMethod.DELETE) public Message remove(HttpServletRequest request, @PathVariable("id") Long id) { - ModuleUserUtils.getOperationUser( - request, "Remove a Datasource Type Record,id:" + id.toString()); + String username = + ModuleUserUtils.getOperationUser( + request, "Remove a Datasource Type Record,id:" + id.toString()); + if (!Configuration.isAdmin(username)) { + return Message.error("User '" + username + "' is not admin user[非管理员用户]"); + } + boolean result = datasourceTypeService.removeById(id); return Message.ok("").data("result", result); } diff --git a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/GatewayAuthTokenRestfulApi.java b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/GatewayAuthTokenRestfulApi.java index 7d5668c074..d55a8e258a 100644 --- a/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/GatewayAuthTokenRestfulApi.java +++ b/linkis-public-enhancements/linkis-pes-publicservice/src/main/java/org/apache/linkis/basedatamanager/server/restful/GatewayAuthTokenRestfulApi.java @@ -55,9 +55,17 @@ public class GatewayAuthTokenRestfulApi { @RequestMapping(path = "", method = RequestMethod.GET) public Message list( HttpServletRequest request, String searchName, Integer currentPage, Integer pageSize) { - ModuleUserUtils.getOperationUser( - request, "Query list data of Gateway Auth Token,search name:" + searchName); + + String username = + ModuleUserUtils.getOperationUser( + request, "Query list data of Gateway Auth Token,search name:" + searchName); + + if (!Configuration.isAdmin(username)) { + return Message.error("User '" + username + "' is not admin user[非管理员用户]"); + } + PageInfo pageList = gatewayAuthTokenService.getListByPage(searchName, currentPage, pageSize); + return Message.ok("").data("list", pageList); } @@ -65,8 +73,14 @@ public Message list( @ApiOperation(value = "get", notes = "Get a Gateway Auth Token Record by id", httpMethod = "GET") @RequestMapping(path = "/{id}", method = RequestMethod.GET) public Message get(HttpServletRequest request, @PathVariable("id") Long id) { - ModuleUserUtils.getOperationUser( - request, "Get a Gateway Auth Token Record,id:" + id.toString()); + + String username = + ModuleUserUtils.getOperationUser( + request, "Get a Gateway Auth Token Record,id:" + id.toString()); + + if (!Configuration.isAdmin(username)) { + return Message.error("User '" + username + "' is not admin user[非管理员用户]"); + } GatewayAuthTokenEntity gatewayAuthToken = gatewayAuthTokenService.getById(id); return Message.ok("").data("item", gatewayAuthToken); } From cf62b6b2738145ba8483e02c2fa7db241847f109 Mon Sep 17 00:00:00 2001 From: peacewong Date: Thu, 21 Mar 2024 21:51:06 +0800 Subject: [PATCH 02/13] Add jdbc params --- .../linkis/common/utils/SecurityUtils.java | 36 +++++++++++++++++++ .../engineplugin/jdbc/ConnectionManager.java | 1 + .../query/service/mysql/SqlConnection.java | 5 ++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/linkis-commons/linkis-common/src/main/java/org/apache/linkis/common/utils/SecurityUtils.java b/linkis-commons/linkis-common/src/main/java/org/apache/linkis/common/utils/SecurityUtils.java index 0278b3337e..af163a6494 100644 --- a/linkis-commons/linkis-common/src/main/java/org/apache/linkis/common/utils/SecurityUtils.java +++ b/linkis-commons/linkis-common/src/main/java/org/apache/linkis/common/utils/SecurityUtils.java @@ -320,4 +320,40 @@ private static boolean isNotSecurity(String key, String value, String param) { return key.toLowerCase().contains(param.toLowerCase()) || value.toLowerCase().contains(param.toLowerCase()); } + + /** + * allowLoadLocalInfile=false&autoDeserialize=false&allowLocalInfile=false&allowUrlInLocalInfile=false + * + * @return + */ + public static Properties getMysqlSecurityParams() { + Properties properties = new Properties(); + properties.setProperty("allowLoadLocalInfile", "false"); + properties.setProperty("autoDeserialize", "false"); + properties.setProperty("allowLocalInfile", "false"); + properties.setProperty("allowUrlInLocalInfile", "false"); + return properties; + } + + /** + * Check if the path has a relative path + * + * @param path + * @return + */ + public static boolean containsRelativePath(String path) { + if (path.startsWith("./") + || path.contains("/./") + || path.startsWith("../") + || path.contains("/../")) { + return true; + } + if (path.startsWith(".\\") + || path.contains("\\.\\") + || path.startsWith("..\\") + || path.contains("\\..\\")) { + return true; + } + return false; + } } diff --git a/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/ConnectionManager.java b/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/ConnectionManager.java index a49613f8d1..38299081d8 100644 --- a/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/ConnectionManager.java +++ b/linkis-engineconn-plugins/jdbc/src/main/java/org/apache/linkis/manager/engineplugin/jdbc/ConnectionManager.java @@ -192,6 +192,7 @@ protected DataSource buildDataSource(String dbUrl, Map propertie datasource.setUrl(dbUrl); datasource.setUsername(username); datasource.setPassword(password); + datasource.setConnectProperties(SecurityUtils.getMysqlSecurityParams()); datasource.setDriverClassName(driverClassName); datasource.setInitialSize(initialSize); datasource.setMinIdle(minIdle); diff --git a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/mysql/SqlConnection.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/mysql/SqlConnection.java index d7559aa5cf..0844ce2cdf 100644 --- a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/mysql/SqlConnection.java +++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/mysql/SqlConnection.java @@ -158,7 +158,10 @@ public Connection getDBConnection(ConnectMessage connectMessage, String database url += "?" + extraParamString; } LOG.info("jdbc connection url: {}", url); - return DriverManager.getConnection(url, connectMessage.username, connectMessage.password); + Properties properties = SecurityUtils.getMysqlSecurityParams(); + properties.setProperty("user", connectMessage.username); + properties.setProperty("password", connectMessage.password); + return DriverManager.getConnection(url, properties); } public String getSqlConnectUrl() { From 72ac28da364682f527d956ecadd51ed500778593 Mon Sep 17 00:00:00 2001 From: peacewong Date: Thu, 21 Mar 2024 21:51:41 +0800 Subject: [PATCH 03/13] Add file path judgment --- .../service/impl/EnginePluginAdminServiceImpl.java | 11 +++++++++++ .../linkis/manager/am/exception/AMErrorCode.java | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/engineplugin/server/service/impl/EnginePluginAdminServiceImpl.java b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/engineplugin/server/service/impl/EnginePluginAdminServiceImpl.java index 069afd4f1b..603641fa78 100644 --- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/engineplugin/server/service/impl/EnginePluginAdminServiceImpl.java +++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/engineplugin/server/service/impl/EnginePluginAdminServiceImpl.java @@ -21,6 +21,7 @@ import org.apache.linkis.bml.client.BmlClientFactory; import org.apache.linkis.bml.protocol.BmlResourceVersionsResponse; import org.apache.linkis.bml.protocol.Version; +import org.apache.linkis.common.utils.SecurityUtils; import org.apache.linkis.common.utils.ZipUtils; import org.apache.linkis.engineplugin.server.dao.EngineConnBmlResourceDao; import org.apache.linkis.engineplugin.server.entity.EngineConnBmlResource; @@ -28,6 +29,8 @@ import org.apache.linkis.engineplugin.server.restful.EnginePluginRestful; import org.apache.linkis.engineplugin.server.service.EnginePluginAdminService; import org.apache.linkis.engineplugin.vo.EnginePluginBMLVo; +import org.apache.linkis.manager.am.exception.AMErrorCode; +import org.apache.linkis.manager.am.exception.AMErrorException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -37,6 +40,7 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; +import java.text.MessageFormat; import java.util.List; import com.github.pagehelper.PageHelper; @@ -79,6 +83,11 @@ public List getTypeList() { @Override public void deleteEnginePluginBML(String ecType, String version, String username) { List allEngineConnBmlResource = null; + if (ecType != null && SecurityUtils.containsRelativePath(ecType)) { + throw new AMErrorException( + AMErrorCode.EC_PLUGIN_ERROR.getErrorCode(), + MessageFormat.format(AMErrorCode.EC_PLUGIN_ERROR.getErrorDesc(), ecType)); + } try { allEngineConnBmlResource = engineConnBmlResourceDao.getAllEngineConnBmlResource(ecType, version); @@ -88,7 +97,9 @@ public void deleteEnginePluginBML(String ecType, String version, String username engineConnBmlResourceDao.delete(engineConnBmlResource); }); String engineConnsHome = defaultEngineConnBmlResourceGenerator.getEngineConnsHome(); + File file = new File(engineConnsHome + "/" + ecType); + if (file.exists()) { deleteDir(file); log.info("file {} delete success", ecType); diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/exception/AMErrorCode.java b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/exception/AMErrorCode.java index c05768739c..cc8997d857 100644 --- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/exception/AMErrorCode.java +++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/exception/AMErrorCode.java @@ -32,7 +32,8 @@ public enum AMErrorCode implements LinkisErrorCode { ASK_ENGINE_ERROR_RETRY(210005, "Ask engine error, retry(请求引擎失败,重试)"), - EC_OPERATE_ERROR(210006, "Failed to execute operation(引擎操作失败)"); + EC_OPERATE_ERROR(210006, "Failed to execute operation(引擎操作失败)"), + EC_PLUGIN_ERROR(210007, "ECType {0} contains RelativePath"); private final int errorCode; From 42711950d8d745e45e2565e34043f390f9e10112 Mon Sep 17 00:00:00 2001 From: peacewong Date: Fri, 22 Mar 2024 22:21:09 +0800 Subject: [PATCH 04/13] add throw Exception --- .../ServiceInstancePriorityLoadBalancer.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java index 2f81ba84d5..afeef60f96 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java @@ -109,7 +109,7 @@ private Response processInstanceResponse( : null; while (null == serviceInstanceResponse - && StringUtils.isNoneBlank(clientIp) + && StringUtils.isNotBlank(clientIp) && isRPC(linkisLoadBalancerType) && System.currentTimeMillis() < endTtime) { cacheManualRefresher.refresh(); @@ -120,11 +120,17 @@ && isRPC(linkisLoadBalancerType) try { Thread.sleep(5000L); } catch (InterruptedException e) { - throw new RuntimeException(e); + } } } + if (null == serviceInstanceResponse && StringUtils.isNotBlank(clientIp)) { + throw new NoInstanceExistsException( + LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorCode(), + MessageFormat.format(LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorDesc(), clientIp)); + } + if (supplier instanceof SelectedInstanceCallback && serviceInstanceResponse.hasServer()) { ((SelectedInstanceCallback) supplier) .selectedServiceInstance(serviceInstanceResponse.getServer()); From fa6549c5ebfe089c5b4470e40153aabc8cfa2bd9 Mon Sep 17 00:00:00 2001 From: peacewong Date: Tue, 26 Mar 2024 12:20:28 +0800 Subject: [PATCH 05/13] code format code format --- .../ServiceInstancePriorityLoadBalancer.java | 4 +- out.txt | 1562 +++++++++++++++++ 2 files changed, 1564 insertions(+), 2 deletions(-) create mode 100644 out.txt diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java index afeef60f96..13cdef1988 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java @@ -127,8 +127,8 @@ && isRPC(linkisLoadBalancerType) if (null == serviceInstanceResponse && StringUtils.isNotBlank(clientIp)) { throw new NoInstanceExistsException( - LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorCode(), - MessageFormat.format(LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorDesc(), clientIp)); + LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorCode(), + MessageFormat.format(LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorDesc(), clientIp)); } if (supplier instanceof SelectedInstanceCallback && serviceInstanceResponse.hasServer()) { diff --git a/out.txt b/out.txt new file mode 100644 index 0000000000..65efa62e30 --- /dev/null +++ b/out.txt @@ -0,0 +1,1562 @@ +commit d767a3c5aa7acf0ffe8d88657236083284661d1b +Author: peacewong +Date: Sat Dec 16 22:40:03 2023 +0800 + + Update entrance ha default switch offf + +commit 4b44517a5461afd916280d33d28fbf351560adae +Author: peacewong +Date: Sat Dec 16 22:39:15 2023 +0800 + + Fix datasource module build + +commit 6b1e8fb61244473c8ad09bf97a35081b0ddeef85 +Author: peacewong +Date: Sat Dec 16 22:37:52 2023 +0800 + + Fix user conf resuource are not being applied close #5040 + +commit 14e118afc987d73d15160cd9d17501acff1aceda +Author: ChengJie1053 <18033291053@163.com> +Date: Thu Dec 14 11:41:34 2023 +0800 + + Fix flink sql kill yarn application and getJobStatus fail (#5041) + + * Fix flink getJobStatus bug + + * Fix flink sql kill yarn application and getJobStatus fail + +commit f81179420049a3c6903717743c9949a1f2696bf8 +Merge: 7766933ea 08cbcfca1 +Author: ChengJie1053 <18033291053@163.com> +Date: Wed Dec 13 14:28:48 2023 +0800 + + Merge pull request #5037 from WeDataSphere/master-remove-log + + [Bug] Remove unnecessary log print + +commit 7766933eacc255de0084abae6cd9954809fe414b +Author: ChengJie1053 <18033291053@163.com> +Date: Wed Dec 13 12:11:50 2023 +0800 + + Fix repl get task result bug (#5036) + + * Fix repl get task result bug + + * Fix repl get task result bug + +commit 08cbcfca140afebae10e1582ee87721578719ded +Author: peacewong +Date: Wed Dec 13 11:46:11 2023 +0800 + + remove unnecessary log print + +commit d4dc8afb8710a857e8b0dccef462ab43a4bb0691 +Author: ChengJie1053 <18033291053@163.com> +Date: Mon Dec 11 18:19:11 2023 +0800 + + Fix nebula query bug (#5029) + +commit 87c40ecbf61f7be875bdaf9f2033c95a4309c117 +Author: LiuGuoHua <129264181+sjgllgh@users.noreply.github.com> +Date: Mon Dec 11 17:12:49 2023 +0800 + + sql field comment semicolon with escape (#4967) + + * sql field comment semicolon with escape + + * add junit test + + * 1.format source code + 2.add code comment + +commit f26cf2a0c2261e2b694ef22a8d54fb1b40722861 +Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +Date: Fri Dec 8 23:27:03 2023 +0800 + + Bump org.apache.avro:avro in /linkis-engineconn-plugins/sqoop (#5026) + + Bumps org.apache.avro:avro from 1.11.0 to 1.11.3. + + --- + updated-dependencies: + - dependency-name: org.apache.avro:avro + dependency-type: direct:production + ... + + Signed-off-by: dependabot[bot] + Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> + +commit d16f6a3bef86dfaa621e0d94ce56d3052512da0b +Author: yangwenzea <45863771+yangwenzea@users.noreply.github.com> +Date: Fri Dec 8 23:26:17 2023 +0800 + + [Feature][1.5.0] Load user-defined log4j.properties (#5023) + + * flink-log4j + + * code format + +commit 2f9f9bbf0ab01f89a793d79f0672024b401a229d +Author: yangwenzea <45863771+yangwenzea@users.noreply.github.com> +Date: Fri Dec 8 23:25:58 2023 +0800 + + flink load default configuration (#5025) + + * flink load default configuration + + * fix gc log bug + + * code format + +commit 2097920a3590289ee296dba0639dc40aa5c589f1 +Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +Date: Thu Dec 7 12:06:23 2023 +0800 + + Bump vite from 4.4.9 to 4.4.12 in /linkis-web-next (#5021) + + Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.9 to 4.4.12. + - [Release notes](https://github.com/vitejs/vite/releases) + - [Changelog](https://github.com/vitejs/vite/blob/v4.4.12/packages/vite/CHANGELOG.md) + - [Commits](https://github.com/vitejs/vite/commits/v4.4.12/packages/vite) + + --- + updated-dependencies: + - dependency-name: vite + dependency-type: direct:production + ... + + Signed-off-by: dependabot[bot] + Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> + +commit b689f88e0ca8360d9f1feab91570f156a44b10cd +Author: peacewong +Date: Wed Dec 6 10:03:48 2023 +0800 + + [Bug] Fixed the problem that local Debug could not read the application yml configuration (#5020) + + * add template_required column to linkis_ps_configuration_config_key close #5018 + + * Fix Local Debug cannot read application ymal + +commit 4c175983b06388a18de669b0e1cb14dc832f9f70 +Author: Yonghao Mei <73584269+mayinrain@users.noreply.github.com> +Date: Mon Dec 4 15:10:29 2023 +0800 + + upd env conf file version (#5009) + +commit 33f915914aff5485a892dc9e476fe6cf84a1f5d7 +Author: peacewong +Date: Thu Nov 30 17:51:16 2023 +0800 + + Fix datasource build assembly bug + +commit 484afad581da4d5340625abe2590cf4f26e25d3a +Author: peacewong +Date: Thu Nov 30 17:36:31 2023 +0800 + + add close issue step + +commit 9fd12658028fa23178a0775ba8ac8c16ee17c9ad +Author: peacewong +Date: Thu Nov 30 17:31:24 2023 +0800 + + Fix datasource build assembly bug + +commit 59fb3ad644222282dbc23354db89097b50d01680 +Author: peacewong +Date: Thu Nov 30 14:54:49 2023 +0800 + + add source bash profile step + +commit d27a520d31f563e59d3658d68025c637eba9cd96 +Author: peacewong +Date: Wed Nov 29 20:55:57 2023 +0800 + + optimize code override toString method + +commit 7704ed1b7079b80549e3282884deac505b9fb791 +Author: peacewong +Date: Wed Nov 29 20:54:59 2023 +0800 + + Optimize JDBC connection support cache by task id + +commit 60aa1c9a8479a1c1c25a4996945c20f7eff66900 +Author: Zhen Wang +Date: Fri Dec 1 14:51:53 2023 +0800 + + Support nacos discovery (#5008) + +commit ba773ff00d009e915a3556a505892dc843e49da5 +Author: yijut2 <52221089+yijut2@users.noreply.github.com> +Date: Thu Nov 30 04:07:50 2023 -0600 + + Update ExceptionManagerTest.java (#5005) + + fix flaky test + +commit 2347ae84768cf35247129f72bdaf484d359a5525 +Author: ChengJie1053 <18033291053@163.com> +Date: Wed Nov 29 22:24:56 2023 +0800 + + Fix flink-1.16 ClassNotFoundException bug (#5001) + + * Fix flink-1.16 ClassNotFoundException bug + + * Fix flink-1.16 ClassNotFoundException bug + +commit 03540ea9f7473d3581726c551aa9353677462017 +Merge: ce0bf4353 a1bf43f74 +Author: Casion +Date: Wed Nov 29 17:21:27 2023 +0800 + + Merge pull request #4996 from WeDataSphere/master-ec-conf + + [Bug][1.5.0] Spark scala task error should print task log + +commit a1bf43f746918abd54655766fabb07f41dc1a37a +Author: peacewong +Date: Wed Nov 29 15:48:25 2023 +0800 + + Compatible ES6 and ES7 close #4998 + +commit 332e11edcafcf93330b448ac8d31f1647d4e876d +Author: peacewong +Date: Wed Nov 29 14:18:18 2023 +0800 + + Fix issue #4997 add step source bash_profile + +commit ce0bf4353f055ecbf34dc689fd6b9eda35307f7d +Author: aiceflower +Date: Wed Nov 29 14:12:27 2023 +0800 + + fix db2 connect issue (#4995) + + * fix db2 connect issue + + * code format + +commit fc3b23fe4f4b8ba46d966986a122e636057c4007 +Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> +Date: Tue Nov 28 22:50:50 2023 +0800 + + add accexx control for gateway (#4992) + +commit 3a9763e5ea91c0bc768ea4fc25896f61218b153a +Author: ChengJie1053 <18033291053@163.com> +Date: Tue Nov 28 22:42:05 2023 +0800 + + Modify flink engine version (#4993) + +commit ca101ae73542f0744d5fdace1f249fafa491ac4e +Author: peacewong +Date: Tue Nov 28 22:40:19 2023 +0800 + + Spark task error should print task log + +commit d9240c07d5129703300ebdb62e7cd525ba110e34 +Author: Yonghao Mei <73584269+mayinrain@users.noreply.github.com> +Date: Tue Nov 28 17:58:00 2023 +0800 + + fix web router (#4991) + + * chore: add new pages to linkis-web and fix bugs of web + + * upd: update version + + * web router fix + +commit a533c2fec7e3fd5e6dd774b6aafbb097153d11de +Author: ChengJie1053 <18033291053@163.com> +Date: Tue Nov 28 16:12:24 2023 +0800 + + linkis engineconn plugins pom add nebula module (#4969) + +commit 9e35c2b867a856d8157b4eb03b896bb5af2e49a3 +Merge: b704a2aff e95b08534 +Author: Casion +Date: Tue Nov 28 14:11:27 2023 +0800 + + Merge pull request #4990 from WeDataSphere/master-manager-ec + + [Feature][ECM] Support download ec log file + +commit e95b08534c8d9f2e9a77e42791dd6cb087274df7 +Author: peacewong +Date: Tue Nov 28 11:48:25 2023 +0800 + + move java test class to java dir + +commit 79cad71559221d7a19fc2fb1631564deb67c7755 +Merge: 2c3e5459f b704a2aff +Author: peacewong +Date: Mon Nov 27 22:23:24 2023 +0800 + + Merge remote-tracking branch 'upstream/master' into master-manager-ec + +commit b704a2aff66651ca6840c3dbedb0e252cd581a7b +Merge: a8fb845f8 9ed39efc2 +Author: Casion +Date: Mon Nov 27 21:43:14 2023 +0800 + + Merge pull request #4982 from WeDataSphere/master-1.5.0 + + Feature][EC] EC index rich, add last unlock time and add ec exit log push + +commit 2c3e5459f4444b9017eebf8eb05e178c51f19028 +Author: peacewong +Date: Mon Nov 27 21:19:38 2023 +0800 + + add ecm rest full can to download ec log file + +commit a8fb845f8ac3436d2918b66bff67531fb2bced80 +Author: Zhen Wang +Date: Mon Nov 27 15:47:15 2023 +0800 + + Check spark commands only when ENABLE_SPARK is true and fix the last print (#4984) + +commit 9ed39efc2b7561899cd57740977f222352cc42a3 +Author: peacewong +Date: Sun Nov 26 23:31:25 2023 +0800 + + add creator task running number limit + +commit 39081ed78949496ea91c92442bbf219188c7dde5 +Author: peacewong +Date: Mon Nov 27 12:12:34 2023 +0800 + + Fix build issue + +commit dfb7faf8ecf7e6d427a3bf7f310fdb432421f710 +Author: peacewong +Date: Sun Nov 26 23:31:25 2023 +0800 + + add creator task running number limit + +commit fe4f1f64b111d6add27288dc34f237df4c70afe1 +Author: peacewong +Date: Sat Nov 25 23:44:51 2023 +0800 + + add get all undone task method + +commit 5c204b2448eceb16418c17f9a90f561210cac725 +Merge: 7f1807af8 d7512fa9e +Author: peacewong +Date: Sat Nov 25 23:06:40 2023 +0800 + + Merge remote-tracking branch 'upstream/master' into master-1.5.0 + + # Conflicts: + # linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/server/DefaultEntranceServer.java + # linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/EntranceServer.scala + # linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/conf/EntranceConfiguration.scala + # linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/scheduler/EntranceGroupFactory.scala + +commit 7f1807af8ae55e2fde28ddfa0307d28e5325644b +Author: peacewong +Date: Sat Nov 25 22:31:47 2023 +0800 + + Fix the occasional loss of logs + +commit 5616acc651b2924315707b5f95563c7ea0a867f4 +Author: peacewong +Date: Sat Nov 25 22:30:25 2023 +0800 + + add task timeout scan + +commit 95855182e8fb7199eb87790a05e692fdc51c1546 +Author: peacewong +Date: Sat Nov 25 22:29:18 2023 +0800 + + error code match log mark to error log + +commit a3cf805c82b8d438f577f5031689623368123135 +Author: peacewong +Date: Sat Nov 25 22:28:27 2023 +0800 + + task log print optimize + +commit bb7b0101443e808125270fa38e329bbe83b4c071 +Author: peacewong +Date: Sat Nov 25 22:26:40 2023 +0800 + + add entrance metric and consumer can be killed and add task timeout scan + +commit 39aa193bb732bbf7757932b65aefbf9176b6cf64 +Author: peacewong +Date: Sat Nov 25 22:20:28 2023 +0800 + + add template conf feature + +commit 5aee060cc3d977290167b1fa03d4fdba9225b4c9 +Author: peacewong +Date: Sat Nov 25 22:19:27 2023 +0800 + + optimize task log write user to jvm user + +commit 7c9d17a71975956914fd5f6379fa2598103e87cd +Author: peacewong +Date: Fri Nov 24 20:57:29 2023 +0800 + + fix build issue + +commit 15e0a8f2e9a06438896b275f6363bcc4d06bcfae +Author: peacewong +Date: Fri Nov 24 17:28:10 2023 +0800 + + code optimize + +commit 774b2bfaeb60777d57f95c787f64eefd888133c0 +Author: peacewong +Date: Fri Nov 24 17:27:37 2023 +0800 + + EC exits unexpectedly and actively kills the task + +commit 032a0eb7834a50463b9c11bf578ff7f939d57f13 +Author: peacewong +Date: Fri Nov 24 17:23:18 2023 +0800 + + ec metrics add last unlock time + +commit 6558fb2b2e648015ef8dbb6913ff5051e5b82a5e +Author: peacewong +Date: Fri Nov 24 17:16:28 2023 +0800 + + update cs resource file download filename to tmp name Prevent duplicate file names + +commit 172f811dc33082c8aed9a847bedf544616f214f1 +Author: peacewong +Date: Fri Nov 24 17:15:13 2023 +0800 + + update default ec idle time to 10 min + +commit d7512fa9e3e6b704d85b206285449038dc8258e4 +Merge: 87661dd01 bd15f865b +Author: Casion +Date: Thu Nov 23 22:34:01 2023 +0800 + + Merge pull request #4905 from WeDataSphere/master-1.1.15-merge + + [Feature][Extensions] Add Monitor Server + +commit 87661dd01b9fa324b43eaee217c871fecdbdf7e5 +Author: Yonghao Mei <73584269+mayinrain@users.noreply.github.com> +Date: Thu Nov 23 22:13:14 2023 +0800 + + update linkis-web for 1.5.0 (#4979) + + * chore: add new pages to linkis-web and fix bugs of web + + * upd: update version + +commit 1afc61295f093834035e41c9eab9dd415cd2c956 +Author: weixiao +Date: Wed Nov 22 00:51:09 2023 -0600 + + Optimize HBase engine dependencies and move java exception class from scala package to java package. (#4976) + + Co-authored-by: Longping Jie + +commit 0453b072de83104cddf9098f559607abf0264a9a +Merge: b6af5f0c3 9f4a9c881 +Author: peacewong +Date: Sun Nov 19 21:51:03 2023 +0800 + + [Feature] Entrance support ha and failover task + + [Feature] Entrance support ha and failover task + +commit b6af5f0c3eac21ba73d4a0bb08c16a6fe6b460eb +Author: ZHANG HUA JIN +Date: Sun Nov 19 21:42:23 2023 +0800 + + [WIP]fix issues #4972 #4973 (#4972) + +commit 9f4a9c881d17ccf8d125155803eb79e7f1299349 +Author: guoshupei <15764973965@163.com> +Date: Sun Nov 19 15:48:22 2023 +0800 + + bugfix `refresh maxAllowRunningJobs` + +commit 5a5e5b37b12b00bf24b12c929c16517d6c75b155 +Author: guoshupei <15764973965@163.com> +Date: Sun Nov 19 13:38:06 2023 +0800 + + bugfix NPE + +commit 21df2de8a86339fd46d25e526262e6df1b1f393c +Author: guoshupei <15764973965@163.com> +Date: Sun Nov 19 12:33:53 2023 +0800 + + bugfix `head of empty list` again + +commit 2b47014684a0f8b2491fa5b90410e10537fcfaa6 +Merge: 5a4f7575b 99e4197dd +Author: luxl@chinatelecom.cn +Date: Tue Nov 14 08:53:15 2023 +0800 + + Merge pull request #4965 from apache/dependabot/npm_and_yarn/linkis-web/axios-1.6.0 + + Bump axios from 0.21.4 to 1.6.0 in /linkis-web + +commit 5a4f7575b7dbc109a8792ffa077cc4f843c71615 +Merge: 149f45e82 2fb4f4d4d +Author: luxl@chinatelecom.cn +Date: Tue Nov 14 08:52:35 2023 +0800 + + Merge pull request #4964 from apache/dependabot/npm_and_yarn/linkis-web-next/axios-1.6.0 + + Bump axios from 1.5.0 to 1.6.0 in /linkis-web-next + +commit 99e4197dd88e34d2165ad7bf4f704d5f9ecfc4e5 +Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +Date: Sun Nov 12 14:10:11 2023 +0000 + + Bump axios from 0.21.4 to 1.6.0 in /linkis-web + + Bumps [axios](https://github.com/axios/axios) from 0.21.4 to 1.6.0. + - [Release notes](https://github.com/axios/axios/releases) + - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) + - [Commits](https://github.com/axios/axios/compare/v0.21.4...v1.6.0) + + --- + updated-dependencies: + - dependency-name: axios + dependency-type: direct:production + ... + + Signed-off-by: dependabot[bot] + +commit 149f45e82070b38c75f689a54fdea6499cc95cd1 +Merge: 51704268a 234c38eda +Author: Casion +Date: Sun Nov 12 22:07:42 2023 +0800 + + Merge pull request #4954 from WeDataSphere/master-pes + + [Feature]New user configuration function added to the management console #4948 + +commit 2fb4f4d4dec8b012b29d4a008c81fa53bc139a6d +Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +Date: Sat Nov 11 15:55:20 2023 +0000 + + Bump axios from 1.5.0 to 1.6.0 in /linkis-web-next + + Bumps [axios](https://github.com/axios/axios) from 1.5.0 to 1.6.0. + - [Release notes](https://github.com/axios/axios/releases) + - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) + - [Commits](https://github.com/axios/axios/compare/v1.5.0...v1.6.0) + + --- + updated-dependencies: + - dependency-name: axios + dependency-type: direct:production + ... + + Signed-off-by: dependabot[bot] + +commit 234c38edabf903db95118b4bb7efc9cd970479fe +Author: peacewong +Date: Sat Nov 11 00:07:21 2023 +0800 + + Fix integration test bug + +commit fe9c0b2e07ced62db2de59c84055f9e098999934 +Author: guoshupei <15764973965@163.com> +Date: Thu Nov 9 17:49:27 2023 +0800 + + rollback bugfix `head of empty list` + +commit c97eacbec5b29cdaad65f9f4e1799cf0fd5142bf +Author: guoshupei <15764973965@163.com> +Date: Wed Nov 8 21:39:45 2023 +0800 + + bugfix `head of empty list` + +commit f8936ce0c06f978ec24b14c8e8f76aebe32450db +Author: peacewong +Date: Wed Nov 8 17:59:05 2023 +0800 + + Fix integration test bug + +commit 8da0f80e35a493d02b10d5b1f66f4f9d5d02adec +Author: guoshupei <15764973965@163.com> +Date: Wed Nov 8 16:50:38 2023 +0800 + + add config + +commit 51704268ab6403baaef0ae3c9d8da9128d168a8b +Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> +Date: Wed Nov 8 16:13:11 2023 +0800 + + feat: optimize process of closing spark job on k8s (#4957) + +commit 7b9957986128d3dc7dd9da01e963cb3b244f8cf3 +Author: 人生有如两个橘子 <15764973965@163.com> +Date: Wed Nov 8 16:12:52 2023 +0800 + + add import `org.apache.spark.sql.api.python.*` (#4961) + +commit 08795ecd3b7d3c96638a04b14ea20a54a9ab45e9 +Author: peacewong +Date: Wed Nov 8 16:09:45 2023 +0800 + + Fix integration test bug + +commit 8225429e8c76721b115dfe5add3298e42659f6a4 +Merge: 2a66bf618 5ac74affe +Author: peacewong +Date: Tue Nov 7 22:27:40 2023 +0800 + + Merge remote-tracking branch 'upstream/master' into master-pes + +commit 5ac74affea6916400890b53f09dbf6f7e49cf5fc +Author: Casion +Date: Tue Nov 7 21:24:10 2023 +0800 + + update action (#4962) + +commit b39a08ede15c6da2b9c8b1a15b234899c9c12f45 +Merge: 4f2565abb 686fbca00 +Author: luxl@chinatelecom.cn +Date: Mon Nov 6 18:27:30 2023 +0800 + + Merge pull request #4955 from apache/dependabot/npm_and_yarn/linkis-web-next/postcss-8.4.31 + + Bump postcss from 8.4.29 to 8.4.31 in /linkis-web-next + +commit bd15f865b27e52ef746b73ce800e079c76972cb8 +Merge: d9935d4b4 4f2565abb +Author: v-kkhuang <62878639+v-kkhuang@users.noreply.github.com> +Date: Mon Nov 6 15:38:44 2023 +0800 + + Merge branch 'apache:master' into master-1.1.15-merge + +commit 43531aa275c2c085b5e2f58b867659d85596b6e9 +Author: guoshupei <15764973965@163.com> +Date: Thu Nov 2 16:23:33 2023 +0800 + + Remove `linkis.entrance.auto.clean.dirty.data.enable` configuration + +commit eb26d59bd76ab317c52d38b3944e17e6d8882b09 +Author: guoshupei <15764973965@163.com> +Date: Mon Oct 30 16:03:23 2023 +0800 + + Remove redundant configuration + +commit 3db8b4afceb0fc10cc713914e5da0a2d1b17892b +Author: guoshupei <15764973965@163.com> +Date: Fri Oct 27 17:59:18 2023 +0800 + + Keyword uppercase + +commit 7a473e5e655c407f7878545e0d7e23118fcdd099 +Merge: c2f9d824c 4f2565abb +Author: guoshupei <15764973965@163.com> +Date: Fri Oct 27 17:15:53 2023 +0800 + + Merge branch 'master' of https://github.com/apache/linkis into dev-1.3.3-feature-ha-4181 + +  Conflicts: +  linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/constants/TaskConstant.java +  linkis-commons/linkis-scheduler/src/main/scala/org/apache/linkis/scheduler/queue/fifoqueue/FIFOUserConsumer.scala + +commit 686fbca00396184b3f3f521fe35bc74515217cdc +Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +Date: Fri Oct 27 07:40:05 2023 +0000 + + Bump postcss from 8.4.29 to 8.4.31 in /linkis-web-next + + Bumps [postcss](https://github.com/postcss/postcss) from 8.4.29 to 8.4.31. + - [Release notes](https://github.com/postcss/postcss/releases) + - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) + - [Commits](https://github.com/postcss/postcss/compare/8.4.29...8.4.31) + + --- + updated-dependencies: + - dependency-name: postcss + dependency-type: indirect + ... + + Signed-off-by: dependabot[bot] + +commit 4f2565abbe98bb24b4db3b5b0ae6356c455a7b20 +Author: CoderSerio <2779066456@qq.com> +Date: Mon Oct 16 14:24:39 2023 +0800 + + refactor of linkis-web + +commit a66ec807e63633a984acf93d813186579ea4ac04 +Author: aiceflower +Date: Fri Oct 27 14:25:35 2023 +0800 + + fix mysql error (#4951) + +commit 2a66bf6189a1febfb73f7294efd09e9d1cda763a +Author: peacewong +Date: Fri Oct 27 11:53:17 2023 +0800 + + add instancio-junit module + +commit 293356eb96e9342d73760f8d261f17c9272ffa57 +Author: peacewong +Date: Thu Oct 26 12:09:35 2023 +0800 + + Fix build error + +commit c2f9d824c5c00774ec3be8710324b81e6e77f9c0 +Author: guoshupei <15764973965@163.com> +Date: Thu Oct 26 17:51:02 2023 +0800 + + Optimized code + +commit d61915d2be0d259d3b211d783d4a1b7225962d3e +Author: peacewong +Date: Wed Oct 25 21:54:52 2023 +0800 + + add template conf and cross cluster ddl + +commit f838aa129a24d0c93bc364be9aa3f039240334e9 +Author: peacewong +Date: Wed Oct 25 21:54:23 2023 +0800 + + add template conf feature + +commit 95566692d97188ee2cc2adf915cd80f70e6ed1be +Author: peacewong +Date: Tue Oct 24 21:07:14 2023 +0800 + + Add cross-cluster rule configuration + +commit b91ec0fc571bf27e75503e876f2b9d87a325326f +Author: peacewong +Date: Tue Oct 24 20:48:06 2023 +0800 + + [Feature]New configuration management function added to the management console #4842 + [Feature]New user configuration function added to the management console #4841 + +commit 8c59c621f2d4b75f2296e13ea64420bee795cf46 +Author: peacewong +Date: Tue Oct 24 20:22:21 2023 +0800 + + fix csv file with utf-8 with bom chart[] + +commit 46589aed39f0dc9b183352b69a07264f3eab10ee +Author: peacewong +Date: Tue Oct 24 20:20:59 2023 +0800 + + Basic data management adds UDF tree management + +commit 1e70b84da9b6810819d5944fa31e00bfabbb3c82 +Author: peacewong +Date: Tue Oct 24 20:12:23 2023 +0800 + + add clear map method + +commit bdc7a5c55629b85f73df0e27ca27ebe058ee23a2 +Author: peacewong +Date: Tue Oct 24 20:11:32 2023 +0800 + + Distributed lock optimization adds lock holding attributes to prevent repeated lock acquisition and unlocking errors. + +commit 49bd9a21a97adc8bdb7af9a75b40c0d0cbd56461 +Author: peacewong +Date: Tue Oct 24 20:09:27 2023 +0800 + + add new create file method support set owner + +commit 22497f7e5afa3d3c9b726067822b323ee907694e +Author: peacewong +Date: Tue Oct 24 20:08:38 2023 +0800 + + UDF info add desc info return + +commit f1f944d6c955679c109e612531872fd863e46611 +Author: peacewong +Date: Tue Oct 24 20:00:33 2023 +0800 + + code optimize + +commit 2b6bb263482458d6c5e4708a99ea2fe5e7066819 +Author: ChengJie1053 <18033291053@163.com> +Date: Thu Oct 26 14:48:09 2023 +0800 + + Add repl ec to execute Java and scala code (#4937) + + * Add repl ec to execute Java and scala code + +commit e795525dca4d5c308c829925f23ce89d594fe676 +Author: chengrui1 <33925582+chengrui1@users.noreply.github.com> +Date: Thu Oct 26 14:24:55 2023 +0800 + + Update SqlConnection.java (#4942) + + When you use service_name to connect to oracle, should pass in serviceName instead of database + +commit ab84ee33c86703bcf59a818799eb4b0597265183 +Author: zhaowenkai111 <1038365989@qq.com> +Date: Mon Oct 9 21:25:30 2023 +0800 + + update JDBC check hint + +commit 5b9a6886bb9278b223ae2b2a15dbde5dda19c3da +Author: peter.peng <153836542@qq.com> +Date: Thu Sep 28 18:57:23 2023 +0800 + + 1, update db.sh: add db information for addtional engines; + 2,update linkis-env.sh, add MySQL and Openlookeng JDBC PATH defination. + +commit e5c24e547f55d727d581842219ab26034653db9f +Author: peter.peng <153836542@qq.com> +Date: Thu Sep 28 18:54:53 2023 +0800 + + update checkAdd.sh : + 1, use english desc. to raplace chinese desc. + +commit e3eee85fd864680acc77006aa780ec27d4d0280e +Author: peter.peng <153836542@qq.com> +Date: Thu Sep 28 08:26:04 2023 +0800 + + update checkAdd.sh : + 1, use english desc. to raplace chinese desc. + +commit 510e17f8d7dc619c5b3515ee56210b48704f687b +Author: peter.peng <153836542@qq.com> +Date: Thu Sep 28 05:22:28 2023 +0800 + + update checkAdd.sh : + 1, format comments for ---1,---2,---3 + 2, Indicate parameter define files + +commit 8106857a5c62c62adfdd4188a89dedfbb9baf1af +Author: peter.peng <153836542@qq.com> +Date: Thu Sep 28 04:30:01 2023 +0800 + + update checkAdd.sh : + 1, format comments for ---1,---2,---3 + 2, Indicate parameter define files + +commit ff97a923975622fc5e34d700b2af652d9c20c851 +Author: peter.peng <153836542@qq.com> +Date: Thu Sep 28 04:30:01 2023 +0800 + + rollback script install.sh,delete additonal engines checking call for checkadd.sh + +commit b735734bc802d74a49cfbd90c2ed7811a7cd6840 +Author: peter.peng <153836542@qq.com> +Date: Tue Sep 26 14:05:25 2023 +0800 + + add service check for Impala/Trino/Seatunnel + +commit 5c5259599676c8c34c5009b66d21ae5771c21e98 +Author: peter.peng <153836542@qq.com> +Date: Tue Sep 26 14:01:31 2023 +0800 + + add service check for HDFS/Hive/Spark + +commit c3efe2660dd161f9e32399d4d3a93c7a8abd912a +Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> +Date: Fri Sep 22 00:04:23 2023 +0800 + + Update checkEnv.sh + + add hadoop command check + +commit 5ab29e2b8e5080322d61202bbabe626a11a65a69 +Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> +Date: Sat Sep 16 12:34:32 2023 +0800 + + Update checkEnv.sh for SHELL、spark-sql、 HDFS command + +commit 9177f0d929b626bb7b9d42dec7821135bb0bd84a +Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> +Date: Sat Sep 16 12:32:41 2023 +0800 + + add shell script "checkAdd.sh" for checking optional engines + + Engine supporting list as bellow: + + JDBC Flink openLooKeng Pipeline Presto Sqoop Elasticsearch + +commit 042f0cfa14039762455b6548480d8123580e5360 +Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> +Date: Sat Sep 16 12:29:49 2023 +0800 + + add shell script " checkAdd.sh" for optional engines check + +commit 85e582d74485cb043937e4a7bca93cc36bcbc7b2 +Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> +Date: Tue Aug 29 10:42:07 2023 +0800 + + Update install.sh - check addtional engines + +commit 7d0c88bca43ee1bf84407d01a7a52b1e7fe22819 +Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> +Date: Tue Aug 29 09:39:42 2023 +0800 + + Create checkAdd.sh for non-default engines check + +commit 3b2b1d2a58618d84beaf59ca81d3dfd32119b9c3 +Author: peacewong +Date: Tue Oct 24 20:00:11 2023 +0800 + + The information returned by a running task should not contain error information + +commit b21ad6efe5ba72b7fa1b30981c2f3c476a52133c +Author: peacewong +Date: Tue Oct 24 19:49:01 2023 +0800 + + [Feature][mg-eureka] List eureka service instance close #4884 + +commit b8b82389a9c547c2d81a537e5dea31a56dcc5bb5 +Author: peacewong +Date: Tue Oct 24 19:45:28 2023 +0800 + + Linkis base info support to return linkis cluster info + +commit 5aee61ca496a813a52f43be64a0a75b183092e22 +Author: peacewong +Date: Tue Oct 24 19:44:36 2023 +0800 + + cs service supports active and standby configuration logic + +commit e1111ab54e33414140e9a5d98737e0506bd68cca +Author: peacewong +Date: Tue Oct 24 19:41:35 2023 +0800 + + linkis-cli add version info to source map + +commit 6affc4b2cfd2fcfd39a4e45164f34206499dde68 +Author: peacewong +Date: Tue Oct 24 11:57:05 2023 +0800 + + The value configured by Linkis is trimmed. + +commit ec9d7f5378d7aa117740733208860029e4f25637 +Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> +Date: Mon Oct 23 14:16:55 2023 +0800 + + Jdbc driver is compatible with multiple versions (#4930) + + * Jdbc driver is compatible with multiple versions + + * code formatting + + * Update reference method + +commit 95f229a3a06de69c7b6383f35b684fea13811d82 +Author: peacewong +Date: Tue Oct 10 17:38:16 2023 +0800 + + Data source service forwarding optimization + +commit 8cf5f66e9ce70dbf39f5491e860ba4b3cb8c69da +Author: peacewong +Date: Tue Oct 10 17:37:57 2023 +0800 + + Gateway server log optimize, add token log and add error log to response + +commit 033b2a80db5d882177745244f5bb6a237bb4a9b7 +Author: peacewong +Date: Tue Oct 10 21:12:09 2023 +0800 + + Spark supports printing parameters to task logs + +commit 247616a38541d82503bbc7e14fec2cfe429e206b +Author: peacewong +Date: Tue Oct 10 21:11:34 2023 +0800 + + Python supports killing subprocesses + +commit 922df460d9f0e9e973f28d79ccb0d8f729388a06 +Author: peacewong +Date: Tue Oct 10 21:11:10 2023 +0800 + + Supports spark.conf parameters to configure multiple parameters + +commit f02ee0c330f2cf9a0540f58c65b1f14c96724916 +Author: peacewong +Date: Tue Oct 10 21:09:50 2023 +0800 + + Result set optimization + 1. Double supports NAN + 2. String supports \n \t characters + +commit 9e9ab021943149a314cb71606e177945375fb49b +Author: peacewong +Date: Tue Oct 10 21:08:29 2023 +0800 + + code optimize + +commit 91d086185c112aeeeaa8a21e79c6fdf228e791d7 +Author: peacewong +Date: Tue Oct 10 20:41:36 2023 +0800 + + add init fs retry + +commit 521d30ccd25f611226f498324dec07591a44ed2a +Author: peacewong +Date: Tue Oct 10 20:34:51 2023 +0800 + + optimize hive task progress + +commit 8c1b15d81eeff5cf488a8d1fd4fc400b80b924f5 +Author: peacewong +Date: Tue Oct 10 20:34:15 2023 +0800 + + Added logs for the ask engine stage + +commit 39a8c10d4a3d28f1a1d69323580572b183722d32 +Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +Date: Sat Oct 14 23:18:50 2023 +0800 + + Bump postcss from 8.4.21 to 8.4.31 in /linkis-web (#4928) + + Bumps [postcss](https://github.com/postcss/postcss) from 8.4.21 to 8.4.31. + - [Release notes](https://github.com/postcss/postcss/releases) + - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) + - [Commits](https://github.com/postcss/postcss/compare/8.4.21...8.4.31) + + --- + updated-dependencies: + - dependency-name: postcss + dependency-type: direct:production + ... + + Signed-off-by: dependabot[bot] + Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> + +commit ca87f434c524f9b5d947ef44ecec99da44cabe73 +Author: GuoPhilipse <46367746+GuoPhilipse@users.noreply.github.com> +Date: Wed Oct 11 10:20:31 2023 +0800 + + [Bug] use gson to replace jackson (#4936) + + * use gson to replace jackson + + * fix checkstyle + +commit d9935d4b44aef5aa658b033bb9d1732295864eb5 +Author: peacewong +Date: Mon Oct 9 20:56:25 2023 +0800 + + delete duplicate conf + +commit 9f1dd091197d8e1c08459e0446ccfcf8bf5e25c1 +Author: peacewong +Date: Sat Oct 7 10:38:13 2023 +0800 + + Fix build error + +commit b63f34c5b2fa88db1880cd32eaab3615704b7de3 +Author: peacewong +Date: Wed Oct 4 23:49:50 2023 +0800 + + Fix build error + +commit 88d9e1be7391c790b7bb0fee70b25494df88caae +Author: peacewong +Date: Wed Oct 4 23:38:44 2023 +0800 + + support null + +commit c625de68e300eaedc535987ab1158716f664d11a +Author: peacewong +Date: Wed Oct 4 23:38:30 2023 +0800 + + optimize jdbc-driver module + +commit efc85b3801ff6b34d317873b420a7ff6ca9d8138 +Author: peacewong +Date: Wed Oct 4 23:37:18 2023 +0800 + + add version info to linkis-cli + +commit dc8a7ad3c32c032ddbba0dacd48e9f5cdaaff6e0 +Author: peacewong +Date: Sun Oct 1 23:55:08 2023 +0800 + + optimize storage module + +commit 01ae62a563f838aaa7d58977814da7472d3364d9 +Author: peacewong +Date: Fri Sep 22 14:56:19 2023 +0800 + + add ps datasource server conf + +commit 50254ac558e1ab26321a67411b6baee402dece57 +Author: peacewong +Date: Fri Sep 22 14:55:54 2023 +0800 + + optimize consumer code logic + +commit d245994970df12e07b8d5c8592aab6628e4a28df +Author: peacewong +Date: Fri Sep 22 14:55:15 2023 +0800 + + add debug switch params to task + +commit 2b6d80240a065c67085d36ae915cec5b5bfeaae1 +Author: peacewong +Date: Fri Sep 22 14:54:24 2023 +0800 + + add default retry for 401 + +commit fcd6c7c0b554b855fcbad68a0113f422a1982e8a +Author: peacewong +Date: Fri Sep 22 12:09:28 2023 +0800 + + 1. add result set sot utils class + 2. optimize variable operation logic + +commit 16183c973c59380cbb05250f773692bfd02f1dcb +Author: GuoPhilipse <46367746+GuoPhilipse@users.noreply.github.com> +Date: Sun Oct 1 23:00:58 2023 +0800 + + [Feature][linkis-public-enhancements] Mer pes publicservice (#4854) + + * merge pes service + + * remove instance label + +commit 17fabc9a22c7730f320a49d3614a5b47f0863b86 +Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> +Date: Sun Oct 1 22:44:37 2023 +0800 + + Fix linkis cli npe error (#4919) + + * #4907 Incorrect adjustment of log printing resource parameters + + * #4918 fix bug:linkis cli npe error + +commit 2efef01187ec7bc82403bd1ab163b22b6d237cdd +Author: weixiao +Date: Tue Sep 26 21:15:51 2023 +0800 + + [Feature] Add hbase engine to linkis (#4891) + + * [Feature] Add hbase engine to linkis + + * Add the function of kill task and add TEXT ResultSet + + --------- + + Co-authored-by: Longping Jie + +commit c0cebe40fb13850794fa5caffde99ca9c68e8905 +Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> +Date: Mon Sep 25 19:36:17 2023 +0800 + + [BUG] Fix em sort error (#4915) + + * fix em sort error + + * Adjust the sorting when there are null values. + +commit 118435f084fce3b1796cb1c73078a2c84653b3b5 +Author: ChengJie1053 <18033291053@163.com> +Date: Mon Sep 25 17:21:56 2023 +0800 + + Modify spark-k8s-operator.md rest submit task parameters (#4912) + +commit 02a740362d7182098adae91ec4fc9904e04912e3 +Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> +Date: Mon Sep 25 17:21:17 2023 +0800 + + Adjust the sortByResourceRate sorting from large to small. (#4914) + +commit 89a653d75359b912bffade16426b0ab4b850d01a +Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> +Date: Thu Sep 21 21:45:40 2023 +0800 + + feat: support submit pyspark once job on k8s and add clusterlabel to combinedlabel (#4906) + + * feat: support submit pyspark once job on k8s + + * feat: modify variable name + + * feat: add method to build k8s client from kubeConfig + + * feat: add Spark UI port configuration for spark on k8s once job + + * feat: rename userCreatorEngineTypeLabel + + * feat: merge podIP and port into url + + * fix: replace 'empty' with 'blank' + +commit 486892036e48c8e04a45e8e4ae27f486c2884c0e +Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> +Date: Wed Sep 20 20:34:09 2023 +0800 + + #4907 Incorrect adjustment of log printing resource parameters (#4908) + +commit d6a86a1dbcf25669379a4c562740c8310485f50b +Author: ChengJie1053 <18033291053@163.com> +Date: Wed Sep 20 20:33:18 2023 +0800 + + Modify spark.md (#4875) + + * linkis-cli add the engingeConnRuntimeModeOP + +commit 4ecb22e373d7407226acc7ac7c63d698f11b394f +Author: ChengJie1053 <18033291053@163.com> +Date: Wed Sep 20 20:32:46 2023 +0800 + + [Feature] Add nebula engine to linkis (#4903) + + * Add nebula engine to linkis + + * Reuse nebula session + + * Code optimization and remove wds prefix + +commit 8f149e1800a57be2d18fb8e0592191bc3aa8ba69 +Author: ChengJie1053 <18033291053@163.com> +Date: Mon Sep 18 15:09:04 2023 +0800 + + Spark once task supports engingeConnRuntimeMode label (#4896) + + * Spark once task supports engingeConnRuntimeMode label + + * isYarnClusterMode extracts to LabelUtil + + * Modify SparkEngineConnFactory + +commit 80b2be58b4f5680a1b4a94803e4dc58c81b59bca +Author: peacewong +Date: Tue Sep 12 12:10:25 2023 +0800 + + code optimize + +commit 703eb501e781a509ad5ec615eaa462598bbe82d1 +Author: peacewong +Date: Mon Sep 11 22:30:05 2023 +0800 + + code optimize + +commit 5e52f909e4c06aedb4c5e9ab7fa2c8bae7f23884 +Author: peacewong +Date: Fri Sep 8 18:57:48 2023 +0800 + + add bml + +commit 5ca67262ad93ab09c3338393155f3f5fa8717078 +Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> +Date: Fri Sep 8 14:38:54 2023 +0800 + + feat: support spark submit jar on k8s (#4867) + + * feat: support spark submit jar on k8s + + * feat: add spark cores setting priority + + * feat: use UUID to generate driverPodName + + * feat: optimize code of executor creation + +commit 8dfcf86ec42fd9f9ab1aed96adb7c0b16c60a11d +Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> +Date: Fri Sep 8 14:37:01 2023 +0800 + + #4900 Fix linkismanager allocation ECM error logic, adjust resource allocation logic from large to small (#4901) + + Co-authored-by: weipengfei + +commit 8181efc1cf0807d6bca18df973e4db53580c4949 +Author: ChengJie1053 <18033291053@163.com> +Date: Wed Sep 6 10:27:31 2023 +0800 + + HttpBmlClient delete useless code (#4898) + +commit e88d5b5b70bd90384d5a3d60ba0d0090cafa7a2d +Author: peacewong +Date: Tue Sep 5 21:25:42 2023 +0800 + + code optimize + +commit 42435c50c9282a1b5e47ecd934f0abadc08fc734 +Author: peacewong +Date: Mon Sep 4 19:19:07 2023 +0800 + + bak + +commit a3e135ea1cace9b635dadaae03342984c5a28960 +Author: ChengJie1053 <18033291053@163.com> +Date: Mon Sep 4 16:24:39 2023 +0800 + + fix spark k8s bug (#4895) + +commit 4169e703c427842d5e932b9375423d74017465ad +Author: ChengJie1053 <18033291053@163.com> +Date: Fri Sep 1 19:09:53 2023 +0800 + + Spark k8s operator task Added status acquisition (#4889) + + * Spark k8s operator task Added status acquisition + + * spark The obtaining status of the k8s operator task is changed to k8s list-watch + + * spark The obtaining status of the k8s operator task is changed to k8s list-watch + +commit b5453a2672db5799e3f40653e28ff27f76963a7b +Author: peacewong +Date: Fri Sep 1 19:07:34 2023 +0800 + + Fix linkis cli async exeute throw npe (#4870) + + * Fix linkis cli async exeute throw npe close #4869 + + * Optimize Code + +commit 5a58d73d480f167506ea3bb5c0c6a1546e55e1e2 +Author: ChengJie1053 <18033291053@163.com> +Date: Thu Aug 24 17:02:03 2023 +0800 + + Fix spark yarn cluster mode bug (#4872) + + * fix spark yarn cluster mode bug + + * fix spark yarn cluster mode bug + +commit 5fa73f2576cc159dfd394c7b6bdc3ad57f777380 +Author: guoshupei <15764973965@163.com> +Date: Tue Aug 22 21:57:10 2023 +0800 + + add mybatis config + +commit bdc3e0eb72ce543db841bb937bb5d96fcbd7a005 +Author: guoshupei <15764973965@163.com> +Date: Tue Aug 22 16:08:52 2023 +0800 + + add comment + +commit faa8d15315a802553c6a261770e3cd7fa8d23640 +Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> +Date: Thu Aug 17 11:14:08 2023 +0800 + + fix: correct the length check of cluster label (#4865) + +commit a94c87653f6ee4c0303876fb1349dbd24e0d614a +Author: ChengJie1053 <18033291053@163.com> +Date: Mon Aug 14 19:11:01 2023 +0800 + + spark support yarn cluster (#4850) + + * spark support yarn cluster + + * spark support yarn cluster + + * spark support yarn cluster + + * spark support yarn cluster + + * spark support yarn cluster + + * LinkisManagerApplication Remove useless code + + * spark support yarn cluster + + * spark support yarn cluster + + * spark support yarn cluster + + * spark support yarn cluster + + * spark support yarn cluster + + * spark support yarn cluster + +commit abbcb733953d6a79faa8d8493b9ca52afa95f75e +Author: zhangwejun <33748538+zhangwejun@users.noreply.github.com> +Date: Mon Aug 14 18:12:05 2023 +0800 + + Fix Chinese garbled code issue when HTTP post input parameter is param (#4860) + + * upgrade the version to 1.4.0 + + * upgrade the version to 1.4.0 + + * Fix Chinese garbled code issue when HTTP post input parameter is param + + * upgrade the version to 1.5.0-SNAPSHOT + + * upgrade the version to 1.5.0-SNAPSHOT + + --------- + + Co-authored-by: Casion + Co-authored-by: peacewong + +commit 3d681fb8a74142417c510687527438deb2e31577 +Author: guoshupei <15764973965@163.com> +Date: Mon Aug 14 15:05:45 2023 +0800 + + merge master + +commit 4571c4c9e777ce26a028187f2e371864a4aa6f79 +Merge: caeeab9fc 1dd22bc4a +Author: guoshupei <15764973965@163.com> +Date: Mon Aug 14 11:36:13 2023 +0800 + + Merge branch 'master' of https://github.com/apache/linkis into dev-1.3.3-feature-ha-4181 + +  Conflicts: +  linkis-computation-governance/linkis-engineconn/linkis-computation-engineconn/src/main/scala/org/apache/linkis/engineconn/computation/executor/service/TaskExecutionServiceImpl.scala +  linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceRestfulApi.java +  linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/server/DefaultEntranceServer.java +  linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/EntranceServer.scala +  linkis-dist/package/conf/linkis-cg-entrance.properties +  linkis-dist/package/conf/linkis-mg-gateway.properties + +commit caeeab9fc13489adad51a06cf86bd0733a761e05 +Author: guoshupei <15764973965@163.com> +Date: Mon Aug 14 11:23:30 2023 +0800 + + sql optimize and bug fix + +commit 1dd22bc4a65d4cc7a9245745d6df06f0c41dc165 +Author: ChengJie1053 <18033291053@163.com> +Date: Fri Aug 11 11:29:21 2023 +0800 + + LinkisManagerApplication Remove useless code (#4856) + +commit 64cdd4d1fa0a6f22c76a7c7ec8d9c4902438e486 +Author: 人生有如两个橘子 <15764973965@163.com> +Date: Wed Aug 9 21:58:07 2023 +0800 + + [Feature] Enhanced FileSource to support more parameters feature (#4838) + + * Enhanced FileSource to support more parameters feature + + * Delete param of `limitTotalLine` and it can be replaced by method of `fileInfo` + + * Remove redundant references + +commit f08773d93e4d297d8909054a2c4c04eba8dad149 +Author: ChengJie1053 <18033291053@163.com> +Date: Tue Aug 8 20:43:18 2023 +0800 + + Flink upgrade 1.16.2 and compatible with multiple versions (#4753) + + * Flink upgrade 1.16.2 + + * Flink is compatible with multiple versions + + * Compatible with flink1.16.2 modifications + + * Compatible with flink1.12.2 modifications + + * Compatible with flink1.12.2 modifications + + * Modify the flink version + + * Compatible with flink1.12.2 modifications + + * Remove useless code + + * Modified flink-shims-1.16.2 pom + + * Modified known-dependencies.txt + + * add license + + * Resolving code conflicts + + * Resolving code conflicts + + * Resolving code conflicts + + * Resolving code conflicts + + * Resolving code conflicts + + * spark support yarn cluster + + * Modify flink pom + +commit dacd2c8fb5c53169bfc2ab3c0e9c80727d9a5f6e +Author: GuoPhilipse <46367746+GuoPhilipse@users.noreply.github.com> +Date: Mon Aug 7 19:24:11 2023 +0800 + + [Feature][linkis-public-enhancements] Merge pes client and common (#4853) + + * merge pes client and common + + * fix cs common + + * optimize import + + * optimize import + + * rename module linkis-rpc-client to be linkis-pes-rpc-client + +commit 958c4940a9e56f367683bc2ba0284c7402d63e6d +Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> +Date: Sat Aug 5 23:31:25 2023 +0800 + + feat: "spark-submit jar on k8s" related label and resource expansion (#4784) + + * feat: add k8sCluster label recognition + + * feat: add kubernetes resource related basic classes + + * feat: add kubernetes resource related classes + + * fix: supplement third dependency + + * feat: k8s resource support different namespace + + * fix: fix some basic problems + + * feat: extend the length of column label_key of linkis_cg_manager_label to 50 + + * fix: format code according to scala style + + * feat: KubernetesResourceRequester supports multiple providers + + * fix: fix wrong variable use + + * feat: adjust constants + + * feat: adjust constants + + * fix: format code according to scala style + +commit bbcb5189370aea2355adac851c3785bc2e9d5a2b +Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> +Date: Sat Aug 5 23:30:20 2023 +0800 + + feat: YarnResourceRequester supports multiple providers (#4852) + + * feat: YarnResourceRequester supports multiple providers + + * fix: format code according to scala style + +commit 5e50196f2be161c420ee6b20a4d38719c7d9935e +Author: GuoPhilipse <46367746+GuoPhilipse@users.noreply.github.com> +Date: Fri Aug 4 16:17:16 2023 +0800 + + merge datasource module (#4847) + +commit 5fa1697b0e84f55aac752a869b44480953e55e37 +Author: ChengJie1053 <18033291053@163.com> +Date: Wed Aug 2 20:12:10 2023 +0800 + + Modify spark-k8s-operator.md (#4837) + +commit 9f8559b048422c6961807010a58bfe5189792ed9 +Author: 人生有如两个橘子 <15764973965@163.com> +Date: Wed Aug 2 10:28:25 2023 +0800 + + [optimize] return to the custom error info (#4835) + + * [optimize] return to the custom error info + + * format + +commit ead682223d02af3aec0f6d0c18ede0753e1359f0 +Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> +Date: Fri Jul 28 14:24:04 2023 +0800 + + fix pg bug (#4833) From a528fe9e8862186f43d725bce42d6e55e3683631 Mon Sep 17 00:00:00 2001 From: peacewong Date: Tue, 26 Mar 2024 15:43:36 +0800 Subject: [PATCH 06/13] remove no use file --- out.txt | 1562 ------------------------------------------------------- 1 file changed, 1562 deletions(-) delete mode 100644 out.txt diff --git a/out.txt b/out.txt deleted file mode 100644 index 65efa62e30..0000000000 --- a/out.txt +++ /dev/null @@ -1,1562 +0,0 @@ -commit d767a3c5aa7acf0ffe8d88657236083284661d1b -Author: peacewong -Date: Sat Dec 16 22:40:03 2023 +0800 - - Update entrance ha default switch offf - -commit 4b44517a5461afd916280d33d28fbf351560adae -Author: peacewong -Date: Sat Dec 16 22:39:15 2023 +0800 - - Fix datasource module build - -commit 6b1e8fb61244473c8ad09bf97a35081b0ddeef85 -Author: peacewong -Date: Sat Dec 16 22:37:52 2023 +0800 - - Fix user conf resuource are not being applied close #5040 - -commit 14e118afc987d73d15160cd9d17501acff1aceda -Author: ChengJie1053 <18033291053@163.com> -Date: Thu Dec 14 11:41:34 2023 +0800 - - Fix flink sql kill yarn application and getJobStatus fail (#5041) - - * Fix flink getJobStatus bug - - * Fix flink sql kill yarn application and getJobStatus fail - -commit f81179420049a3c6903717743c9949a1f2696bf8 -Merge: 7766933ea 08cbcfca1 -Author: ChengJie1053 <18033291053@163.com> -Date: Wed Dec 13 14:28:48 2023 +0800 - - Merge pull request #5037 from WeDataSphere/master-remove-log - - [Bug] Remove unnecessary log print - -commit 7766933eacc255de0084abae6cd9954809fe414b -Author: ChengJie1053 <18033291053@163.com> -Date: Wed Dec 13 12:11:50 2023 +0800 - - Fix repl get task result bug (#5036) - - * Fix repl get task result bug - - * Fix repl get task result bug - -commit 08cbcfca140afebae10e1582ee87721578719ded -Author: peacewong -Date: Wed Dec 13 11:46:11 2023 +0800 - - remove unnecessary log print - -commit d4dc8afb8710a857e8b0dccef462ab43a4bb0691 -Author: ChengJie1053 <18033291053@163.com> -Date: Mon Dec 11 18:19:11 2023 +0800 - - Fix nebula query bug (#5029) - -commit 87c40ecbf61f7be875bdaf9f2033c95a4309c117 -Author: LiuGuoHua <129264181+sjgllgh@users.noreply.github.com> -Date: Mon Dec 11 17:12:49 2023 +0800 - - sql field comment semicolon with escape (#4967) - - * sql field comment semicolon with escape - - * add junit test - - * 1.format source code - 2.add code comment - -commit f26cf2a0c2261e2b694ef22a8d54fb1b40722861 -Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> -Date: Fri Dec 8 23:27:03 2023 +0800 - - Bump org.apache.avro:avro in /linkis-engineconn-plugins/sqoop (#5026) - - Bumps org.apache.avro:avro from 1.11.0 to 1.11.3. - - --- - updated-dependencies: - - dependency-name: org.apache.avro:avro - dependency-type: direct:production - ... - - Signed-off-by: dependabot[bot] - Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - -commit d16f6a3bef86dfaa621e0d94ce56d3052512da0b -Author: yangwenzea <45863771+yangwenzea@users.noreply.github.com> -Date: Fri Dec 8 23:26:17 2023 +0800 - - [Feature][1.5.0] Load user-defined log4j.properties (#5023) - - * flink-log4j - - * code format - -commit 2f9f9bbf0ab01f89a793d79f0672024b401a229d -Author: yangwenzea <45863771+yangwenzea@users.noreply.github.com> -Date: Fri Dec 8 23:25:58 2023 +0800 - - flink load default configuration (#5025) - - * flink load default configuration - - * fix gc log bug - - * code format - -commit 2097920a3590289ee296dba0639dc40aa5c589f1 -Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> -Date: Thu Dec 7 12:06:23 2023 +0800 - - Bump vite from 4.4.9 to 4.4.12 in /linkis-web-next (#5021) - - Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.9 to 4.4.12. - - [Release notes](https://github.com/vitejs/vite/releases) - - [Changelog](https://github.com/vitejs/vite/blob/v4.4.12/packages/vite/CHANGELOG.md) - - [Commits](https://github.com/vitejs/vite/commits/v4.4.12/packages/vite) - - --- - updated-dependencies: - - dependency-name: vite - dependency-type: direct:production - ... - - Signed-off-by: dependabot[bot] - Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - -commit b689f88e0ca8360d9f1feab91570f156a44b10cd -Author: peacewong -Date: Wed Dec 6 10:03:48 2023 +0800 - - [Bug] Fixed the problem that local Debug could not read the application yml configuration (#5020) - - * add template_required column to linkis_ps_configuration_config_key close #5018 - - * Fix Local Debug cannot read application ymal - -commit 4c175983b06388a18de669b0e1cb14dc832f9f70 -Author: Yonghao Mei <73584269+mayinrain@users.noreply.github.com> -Date: Mon Dec 4 15:10:29 2023 +0800 - - upd env conf file version (#5009) - -commit 33f915914aff5485a892dc9e476fe6cf84a1f5d7 -Author: peacewong -Date: Thu Nov 30 17:51:16 2023 +0800 - - Fix datasource build assembly bug - -commit 484afad581da4d5340625abe2590cf4f26e25d3a -Author: peacewong -Date: Thu Nov 30 17:36:31 2023 +0800 - - add close issue step - -commit 9fd12658028fa23178a0775ba8ac8c16ee17c9ad -Author: peacewong -Date: Thu Nov 30 17:31:24 2023 +0800 - - Fix datasource build assembly bug - -commit 59fb3ad644222282dbc23354db89097b50d01680 -Author: peacewong -Date: Thu Nov 30 14:54:49 2023 +0800 - - add source bash profile step - -commit d27a520d31f563e59d3658d68025c637eba9cd96 -Author: peacewong -Date: Wed Nov 29 20:55:57 2023 +0800 - - optimize code override toString method - -commit 7704ed1b7079b80549e3282884deac505b9fb791 -Author: peacewong -Date: Wed Nov 29 20:54:59 2023 +0800 - - Optimize JDBC connection support cache by task id - -commit 60aa1c9a8479a1c1c25a4996945c20f7eff66900 -Author: Zhen Wang -Date: Fri Dec 1 14:51:53 2023 +0800 - - Support nacos discovery (#5008) - -commit ba773ff00d009e915a3556a505892dc843e49da5 -Author: yijut2 <52221089+yijut2@users.noreply.github.com> -Date: Thu Nov 30 04:07:50 2023 -0600 - - Update ExceptionManagerTest.java (#5005) - - fix flaky test - -commit 2347ae84768cf35247129f72bdaf484d359a5525 -Author: ChengJie1053 <18033291053@163.com> -Date: Wed Nov 29 22:24:56 2023 +0800 - - Fix flink-1.16 ClassNotFoundException bug (#5001) - - * Fix flink-1.16 ClassNotFoundException bug - - * Fix flink-1.16 ClassNotFoundException bug - -commit 03540ea9f7473d3581726c551aa9353677462017 -Merge: ce0bf4353 a1bf43f74 -Author: Casion -Date: Wed Nov 29 17:21:27 2023 +0800 - - Merge pull request #4996 from WeDataSphere/master-ec-conf - - [Bug][1.5.0] Spark scala task error should print task log - -commit a1bf43f746918abd54655766fabb07f41dc1a37a -Author: peacewong -Date: Wed Nov 29 15:48:25 2023 +0800 - - Compatible ES6 and ES7 close #4998 - -commit 332e11edcafcf93330b448ac8d31f1647d4e876d -Author: peacewong -Date: Wed Nov 29 14:18:18 2023 +0800 - - Fix issue #4997 add step source bash_profile - -commit ce0bf4353f055ecbf34dc689fd6b9eda35307f7d -Author: aiceflower -Date: Wed Nov 29 14:12:27 2023 +0800 - - fix db2 connect issue (#4995) - - * fix db2 connect issue - - * code format - -commit fc3b23fe4f4b8ba46d966986a122e636057c4007 -Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> -Date: Tue Nov 28 22:50:50 2023 +0800 - - add accexx control for gateway (#4992) - -commit 3a9763e5ea91c0bc768ea4fc25896f61218b153a -Author: ChengJie1053 <18033291053@163.com> -Date: Tue Nov 28 22:42:05 2023 +0800 - - Modify flink engine version (#4993) - -commit ca101ae73542f0744d5fdace1f249fafa491ac4e -Author: peacewong -Date: Tue Nov 28 22:40:19 2023 +0800 - - Spark task error should print task log - -commit d9240c07d5129703300ebdb62e7cd525ba110e34 -Author: Yonghao Mei <73584269+mayinrain@users.noreply.github.com> -Date: Tue Nov 28 17:58:00 2023 +0800 - - fix web router (#4991) - - * chore: add new pages to linkis-web and fix bugs of web - - * upd: update version - - * web router fix - -commit a533c2fec7e3fd5e6dd774b6aafbb097153d11de -Author: ChengJie1053 <18033291053@163.com> -Date: Tue Nov 28 16:12:24 2023 +0800 - - linkis engineconn plugins pom add nebula module (#4969) - -commit 9e35c2b867a856d8157b4eb03b896bb5af2e49a3 -Merge: b704a2aff e95b08534 -Author: Casion -Date: Tue Nov 28 14:11:27 2023 +0800 - - Merge pull request #4990 from WeDataSphere/master-manager-ec - - [Feature][ECM] Support download ec log file - -commit e95b08534c8d9f2e9a77e42791dd6cb087274df7 -Author: peacewong -Date: Tue Nov 28 11:48:25 2023 +0800 - - move java test class to java dir - -commit 79cad71559221d7a19fc2fb1631564deb67c7755 -Merge: 2c3e5459f b704a2aff -Author: peacewong -Date: Mon Nov 27 22:23:24 2023 +0800 - - Merge remote-tracking branch 'upstream/master' into master-manager-ec - -commit b704a2aff66651ca6840c3dbedb0e252cd581a7b -Merge: a8fb845f8 9ed39efc2 -Author: Casion -Date: Mon Nov 27 21:43:14 2023 +0800 - - Merge pull request #4982 from WeDataSphere/master-1.5.0 - - Feature][EC] EC index rich, add last unlock time and add ec exit log push - -commit 2c3e5459f4444b9017eebf8eb05e178c51f19028 -Author: peacewong -Date: Mon Nov 27 21:19:38 2023 +0800 - - add ecm rest full can to download ec log file - -commit a8fb845f8ac3436d2918b66bff67531fb2bced80 -Author: Zhen Wang -Date: Mon Nov 27 15:47:15 2023 +0800 - - Check spark commands only when ENABLE_SPARK is true and fix the last print (#4984) - -commit 9ed39efc2b7561899cd57740977f222352cc42a3 -Author: peacewong -Date: Sun Nov 26 23:31:25 2023 +0800 - - add creator task running number limit - -commit 39081ed78949496ea91c92442bbf219188c7dde5 -Author: peacewong -Date: Mon Nov 27 12:12:34 2023 +0800 - - Fix build issue - -commit dfb7faf8ecf7e6d427a3bf7f310fdb432421f710 -Author: peacewong -Date: Sun Nov 26 23:31:25 2023 +0800 - - add creator task running number limit - -commit fe4f1f64b111d6add27288dc34f237df4c70afe1 -Author: peacewong -Date: Sat Nov 25 23:44:51 2023 +0800 - - add get all undone task method - -commit 5c204b2448eceb16418c17f9a90f561210cac725 -Merge: 7f1807af8 d7512fa9e -Author: peacewong -Date: Sat Nov 25 23:06:40 2023 +0800 - - Merge remote-tracking branch 'upstream/master' into master-1.5.0 - - # Conflicts: - # linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/server/DefaultEntranceServer.java - # linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/EntranceServer.scala - # linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/conf/EntranceConfiguration.scala - # linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/scheduler/EntranceGroupFactory.scala - -commit 7f1807af8ae55e2fde28ddfa0307d28e5325644b -Author: peacewong -Date: Sat Nov 25 22:31:47 2023 +0800 - - Fix the occasional loss of logs - -commit 5616acc651b2924315707b5f95563c7ea0a867f4 -Author: peacewong -Date: Sat Nov 25 22:30:25 2023 +0800 - - add task timeout scan - -commit 95855182e8fb7199eb87790a05e692fdc51c1546 -Author: peacewong -Date: Sat Nov 25 22:29:18 2023 +0800 - - error code match log mark to error log - -commit a3cf805c82b8d438f577f5031689623368123135 -Author: peacewong -Date: Sat Nov 25 22:28:27 2023 +0800 - - task log print optimize - -commit bb7b0101443e808125270fa38e329bbe83b4c071 -Author: peacewong -Date: Sat Nov 25 22:26:40 2023 +0800 - - add entrance metric and consumer can be killed and add task timeout scan - -commit 39aa193bb732bbf7757932b65aefbf9176b6cf64 -Author: peacewong -Date: Sat Nov 25 22:20:28 2023 +0800 - - add template conf feature - -commit 5aee060cc3d977290167b1fa03d4fdba9225b4c9 -Author: peacewong -Date: Sat Nov 25 22:19:27 2023 +0800 - - optimize task log write user to jvm user - -commit 7c9d17a71975956914fd5f6379fa2598103e87cd -Author: peacewong -Date: Fri Nov 24 20:57:29 2023 +0800 - - fix build issue - -commit 15e0a8f2e9a06438896b275f6363bcc4d06bcfae -Author: peacewong -Date: Fri Nov 24 17:28:10 2023 +0800 - - code optimize - -commit 774b2bfaeb60777d57f95c787f64eefd888133c0 -Author: peacewong -Date: Fri Nov 24 17:27:37 2023 +0800 - - EC exits unexpectedly and actively kills the task - -commit 032a0eb7834a50463b9c11bf578ff7f939d57f13 -Author: peacewong -Date: Fri Nov 24 17:23:18 2023 +0800 - - ec metrics add last unlock time - -commit 6558fb2b2e648015ef8dbb6913ff5051e5b82a5e -Author: peacewong -Date: Fri Nov 24 17:16:28 2023 +0800 - - update cs resource file download filename to tmp name Prevent duplicate file names - -commit 172f811dc33082c8aed9a847bedf544616f214f1 -Author: peacewong -Date: Fri Nov 24 17:15:13 2023 +0800 - - update default ec idle time to 10 min - -commit d7512fa9e3e6b704d85b206285449038dc8258e4 -Merge: 87661dd01 bd15f865b -Author: Casion -Date: Thu Nov 23 22:34:01 2023 +0800 - - Merge pull request #4905 from WeDataSphere/master-1.1.15-merge - - [Feature][Extensions] Add Monitor Server - -commit 87661dd01b9fa324b43eaee217c871fecdbdf7e5 -Author: Yonghao Mei <73584269+mayinrain@users.noreply.github.com> -Date: Thu Nov 23 22:13:14 2023 +0800 - - update linkis-web for 1.5.0 (#4979) - - * chore: add new pages to linkis-web and fix bugs of web - - * upd: update version - -commit 1afc61295f093834035e41c9eab9dd415cd2c956 -Author: weixiao -Date: Wed Nov 22 00:51:09 2023 -0600 - - Optimize HBase engine dependencies and move java exception class from scala package to java package. (#4976) - - Co-authored-by: Longping Jie - -commit 0453b072de83104cddf9098f559607abf0264a9a -Merge: b6af5f0c3 9f4a9c881 -Author: peacewong -Date: Sun Nov 19 21:51:03 2023 +0800 - - [Feature] Entrance support ha and failover task - - [Feature] Entrance support ha and failover task - -commit b6af5f0c3eac21ba73d4a0bb08c16a6fe6b460eb -Author: ZHANG HUA JIN -Date: Sun Nov 19 21:42:23 2023 +0800 - - [WIP]fix issues #4972 #4973 (#4972) - -commit 9f4a9c881d17ccf8d125155803eb79e7f1299349 -Author: guoshupei <15764973965@163.com> -Date: Sun Nov 19 15:48:22 2023 +0800 - - bugfix `refresh maxAllowRunningJobs` - -commit 5a5e5b37b12b00bf24b12c929c16517d6c75b155 -Author: guoshupei <15764973965@163.com> -Date: Sun Nov 19 13:38:06 2023 +0800 - - bugfix NPE - -commit 21df2de8a86339fd46d25e526262e6df1b1f393c -Author: guoshupei <15764973965@163.com> -Date: Sun Nov 19 12:33:53 2023 +0800 - - bugfix `head of empty list` again - -commit 2b47014684a0f8b2491fa5b90410e10537fcfaa6 -Merge: 5a4f7575b 99e4197dd -Author: luxl@chinatelecom.cn -Date: Tue Nov 14 08:53:15 2023 +0800 - - Merge pull request #4965 from apache/dependabot/npm_and_yarn/linkis-web/axios-1.6.0 - - Bump axios from 0.21.4 to 1.6.0 in /linkis-web - -commit 5a4f7575b7dbc109a8792ffa077cc4f843c71615 -Merge: 149f45e82 2fb4f4d4d -Author: luxl@chinatelecom.cn -Date: Tue Nov 14 08:52:35 2023 +0800 - - Merge pull request #4964 from apache/dependabot/npm_and_yarn/linkis-web-next/axios-1.6.0 - - Bump axios from 1.5.0 to 1.6.0 in /linkis-web-next - -commit 99e4197dd88e34d2165ad7bf4f704d5f9ecfc4e5 -Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> -Date: Sun Nov 12 14:10:11 2023 +0000 - - Bump axios from 0.21.4 to 1.6.0 in /linkis-web - - Bumps [axios](https://github.com/axios/axios) from 0.21.4 to 1.6.0. - - [Release notes](https://github.com/axios/axios/releases) - - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - - [Commits](https://github.com/axios/axios/compare/v0.21.4...v1.6.0) - - --- - updated-dependencies: - - dependency-name: axios - dependency-type: direct:production - ... - - Signed-off-by: dependabot[bot] - -commit 149f45e82070b38c75f689a54fdea6499cc95cd1 -Merge: 51704268a 234c38eda -Author: Casion -Date: Sun Nov 12 22:07:42 2023 +0800 - - Merge pull request #4954 from WeDataSphere/master-pes - - [Feature]New user configuration function added to the management console #4948 - -commit 2fb4f4d4dec8b012b29d4a008c81fa53bc139a6d -Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> -Date: Sat Nov 11 15:55:20 2023 +0000 - - Bump axios from 1.5.0 to 1.6.0 in /linkis-web-next - - Bumps [axios](https://github.com/axios/axios) from 1.5.0 to 1.6.0. - - [Release notes](https://github.com/axios/axios/releases) - - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - - [Commits](https://github.com/axios/axios/compare/v1.5.0...v1.6.0) - - --- - updated-dependencies: - - dependency-name: axios - dependency-type: direct:production - ... - - Signed-off-by: dependabot[bot] - -commit 234c38edabf903db95118b4bb7efc9cd970479fe -Author: peacewong -Date: Sat Nov 11 00:07:21 2023 +0800 - - Fix integration test bug - -commit fe9c0b2e07ced62db2de59c84055f9e098999934 -Author: guoshupei <15764973965@163.com> -Date: Thu Nov 9 17:49:27 2023 +0800 - - rollback bugfix `head of empty list` - -commit c97eacbec5b29cdaad65f9f4e1799cf0fd5142bf -Author: guoshupei <15764973965@163.com> -Date: Wed Nov 8 21:39:45 2023 +0800 - - bugfix `head of empty list` - -commit f8936ce0c06f978ec24b14c8e8f76aebe32450db -Author: peacewong -Date: Wed Nov 8 17:59:05 2023 +0800 - - Fix integration test bug - -commit 8da0f80e35a493d02b10d5b1f66f4f9d5d02adec -Author: guoshupei <15764973965@163.com> -Date: Wed Nov 8 16:50:38 2023 +0800 - - add config - -commit 51704268ab6403baaef0ae3c9d8da9128d168a8b -Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> -Date: Wed Nov 8 16:13:11 2023 +0800 - - feat: optimize process of closing spark job on k8s (#4957) - -commit 7b9957986128d3dc7dd9da01e963cb3b244f8cf3 -Author: 人生有如两个橘子 <15764973965@163.com> -Date: Wed Nov 8 16:12:52 2023 +0800 - - add import `org.apache.spark.sql.api.python.*` (#4961) - -commit 08795ecd3b7d3c96638a04b14ea20a54a9ab45e9 -Author: peacewong -Date: Wed Nov 8 16:09:45 2023 +0800 - - Fix integration test bug - -commit 8225429e8c76721b115dfe5add3298e42659f6a4 -Merge: 2a66bf618 5ac74affe -Author: peacewong -Date: Tue Nov 7 22:27:40 2023 +0800 - - Merge remote-tracking branch 'upstream/master' into master-pes - -commit 5ac74affea6916400890b53f09dbf6f7e49cf5fc -Author: Casion -Date: Tue Nov 7 21:24:10 2023 +0800 - - update action (#4962) - -commit b39a08ede15c6da2b9c8b1a15b234899c9c12f45 -Merge: 4f2565abb 686fbca00 -Author: luxl@chinatelecom.cn -Date: Mon Nov 6 18:27:30 2023 +0800 - - Merge pull request #4955 from apache/dependabot/npm_and_yarn/linkis-web-next/postcss-8.4.31 - - Bump postcss from 8.4.29 to 8.4.31 in /linkis-web-next - -commit bd15f865b27e52ef746b73ce800e079c76972cb8 -Merge: d9935d4b4 4f2565abb -Author: v-kkhuang <62878639+v-kkhuang@users.noreply.github.com> -Date: Mon Nov 6 15:38:44 2023 +0800 - - Merge branch 'apache:master' into master-1.1.15-merge - -commit 43531aa275c2c085b5e2f58b867659d85596b6e9 -Author: guoshupei <15764973965@163.com> -Date: Thu Nov 2 16:23:33 2023 +0800 - - Remove `linkis.entrance.auto.clean.dirty.data.enable` configuration - -commit eb26d59bd76ab317c52d38b3944e17e6d8882b09 -Author: guoshupei <15764973965@163.com> -Date: Mon Oct 30 16:03:23 2023 +0800 - - Remove redundant configuration - -commit 3db8b4afceb0fc10cc713914e5da0a2d1b17892b -Author: guoshupei <15764973965@163.com> -Date: Fri Oct 27 17:59:18 2023 +0800 - - Keyword uppercase - -commit 7a473e5e655c407f7878545e0d7e23118fcdd099 -Merge: c2f9d824c 4f2565abb -Author: guoshupei <15764973965@163.com> -Date: Fri Oct 27 17:15:53 2023 +0800 - - Merge branch 'master' of https://github.com/apache/linkis into dev-1.3.3-feature-ha-4181 - -  Conflicts: -  linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/constants/TaskConstant.java -  linkis-commons/linkis-scheduler/src/main/scala/org/apache/linkis/scheduler/queue/fifoqueue/FIFOUserConsumer.scala - -commit 686fbca00396184b3f3f521fe35bc74515217cdc -Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> -Date: Fri Oct 27 07:40:05 2023 +0000 - - Bump postcss from 8.4.29 to 8.4.31 in /linkis-web-next - - Bumps [postcss](https://github.com/postcss/postcss) from 8.4.29 to 8.4.31. - - [Release notes](https://github.com/postcss/postcss/releases) - - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - - [Commits](https://github.com/postcss/postcss/compare/8.4.29...8.4.31) - - --- - updated-dependencies: - - dependency-name: postcss - dependency-type: indirect - ... - - Signed-off-by: dependabot[bot] - -commit 4f2565abbe98bb24b4db3b5b0ae6356c455a7b20 -Author: CoderSerio <2779066456@qq.com> -Date: Mon Oct 16 14:24:39 2023 +0800 - - refactor of linkis-web - -commit a66ec807e63633a984acf93d813186579ea4ac04 -Author: aiceflower -Date: Fri Oct 27 14:25:35 2023 +0800 - - fix mysql error (#4951) - -commit 2a66bf6189a1febfb73f7294efd09e9d1cda763a -Author: peacewong -Date: Fri Oct 27 11:53:17 2023 +0800 - - add instancio-junit module - -commit 293356eb96e9342d73760f8d261f17c9272ffa57 -Author: peacewong -Date: Thu Oct 26 12:09:35 2023 +0800 - - Fix build error - -commit c2f9d824c5c00774ec3be8710324b81e6e77f9c0 -Author: guoshupei <15764973965@163.com> -Date: Thu Oct 26 17:51:02 2023 +0800 - - Optimized code - -commit d61915d2be0d259d3b211d783d4a1b7225962d3e -Author: peacewong -Date: Wed Oct 25 21:54:52 2023 +0800 - - add template conf and cross cluster ddl - -commit f838aa129a24d0c93bc364be9aa3f039240334e9 -Author: peacewong -Date: Wed Oct 25 21:54:23 2023 +0800 - - add template conf feature - -commit 95566692d97188ee2cc2adf915cd80f70e6ed1be -Author: peacewong -Date: Tue Oct 24 21:07:14 2023 +0800 - - Add cross-cluster rule configuration - -commit b91ec0fc571bf27e75503e876f2b9d87a325326f -Author: peacewong -Date: Tue Oct 24 20:48:06 2023 +0800 - - [Feature]New configuration management function added to the management console #4842 - [Feature]New user configuration function added to the management console #4841 - -commit 8c59c621f2d4b75f2296e13ea64420bee795cf46 -Author: peacewong -Date: Tue Oct 24 20:22:21 2023 +0800 - - fix csv file with utf-8 with bom chart[] - -commit 46589aed39f0dc9b183352b69a07264f3eab10ee -Author: peacewong -Date: Tue Oct 24 20:20:59 2023 +0800 - - Basic data management adds UDF tree management - -commit 1e70b84da9b6810819d5944fa31e00bfabbb3c82 -Author: peacewong -Date: Tue Oct 24 20:12:23 2023 +0800 - - add clear map method - -commit bdc7a5c55629b85f73df0e27ca27ebe058ee23a2 -Author: peacewong -Date: Tue Oct 24 20:11:32 2023 +0800 - - Distributed lock optimization adds lock holding attributes to prevent repeated lock acquisition and unlocking errors. - -commit 49bd9a21a97adc8bdb7af9a75b40c0d0cbd56461 -Author: peacewong -Date: Tue Oct 24 20:09:27 2023 +0800 - - add new create file method support set owner - -commit 22497f7e5afa3d3c9b726067822b323ee907694e -Author: peacewong -Date: Tue Oct 24 20:08:38 2023 +0800 - - UDF info add desc info return - -commit f1f944d6c955679c109e612531872fd863e46611 -Author: peacewong -Date: Tue Oct 24 20:00:33 2023 +0800 - - code optimize - -commit 2b6bb263482458d6c5e4708a99ea2fe5e7066819 -Author: ChengJie1053 <18033291053@163.com> -Date: Thu Oct 26 14:48:09 2023 +0800 - - Add repl ec to execute Java and scala code (#4937) - - * Add repl ec to execute Java and scala code - -commit e795525dca4d5c308c829925f23ce89d594fe676 -Author: chengrui1 <33925582+chengrui1@users.noreply.github.com> -Date: Thu Oct 26 14:24:55 2023 +0800 - - Update SqlConnection.java (#4942) - - When you use service_name to connect to oracle, should pass in serviceName instead of database - -commit ab84ee33c86703bcf59a818799eb4b0597265183 -Author: zhaowenkai111 <1038365989@qq.com> -Date: Mon Oct 9 21:25:30 2023 +0800 - - update JDBC check hint - -commit 5b9a6886bb9278b223ae2b2a15dbde5dda19c3da -Author: peter.peng <153836542@qq.com> -Date: Thu Sep 28 18:57:23 2023 +0800 - - 1, update db.sh: add db information for addtional engines; - 2,update linkis-env.sh, add MySQL and Openlookeng JDBC PATH defination. - -commit e5c24e547f55d727d581842219ab26034653db9f -Author: peter.peng <153836542@qq.com> -Date: Thu Sep 28 18:54:53 2023 +0800 - - update checkAdd.sh : - 1, use english desc. to raplace chinese desc. - -commit e3eee85fd864680acc77006aa780ec27d4d0280e -Author: peter.peng <153836542@qq.com> -Date: Thu Sep 28 08:26:04 2023 +0800 - - update checkAdd.sh : - 1, use english desc. to raplace chinese desc. - -commit 510e17f8d7dc619c5b3515ee56210b48704f687b -Author: peter.peng <153836542@qq.com> -Date: Thu Sep 28 05:22:28 2023 +0800 - - update checkAdd.sh : - 1, format comments for ---1,---2,---3 - 2, Indicate parameter define files - -commit 8106857a5c62c62adfdd4188a89dedfbb9baf1af -Author: peter.peng <153836542@qq.com> -Date: Thu Sep 28 04:30:01 2023 +0800 - - update checkAdd.sh : - 1, format comments for ---1,---2,---3 - 2, Indicate parameter define files - -commit ff97a923975622fc5e34d700b2af652d9c20c851 -Author: peter.peng <153836542@qq.com> -Date: Thu Sep 28 04:30:01 2023 +0800 - - rollback script install.sh,delete additonal engines checking call for checkadd.sh - -commit b735734bc802d74a49cfbd90c2ed7811a7cd6840 -Author: peter.peng <153836542@qq.com> -Date: Tue Sep 26 14:05:25 2023 +0800 - - add service check for Impala/Trino/Seatunnel - -commit 5c5259599676c8c34c5009b66d21ae5771c21e98 -Author: peter.peng <153836542@qq.com> -Date: Tue Sep 26 14:01:31 2023 +0800 - - add service check for HDFS/Hive/Spark - -commit c3efe2660dd161f9e32399d4d3a93c7a8abd912a -Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> -Date: Fri Sep 22 00:04:23 2023 +0800 - - Update checkEnv.sh - - add hadoop command check - -commit 5ab29e2b8e5080322d61202bbabe626a11a65a69 -Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> -Date: Sat Sep 16 12:34:32 2023 +0800 - - Update checkEnv.sh for SHELL、spark-sql、 HDFS command - -commit 9177f0d929b626bb7b9d42dec7821135bb0bd84a -Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> -Date: Sat Sep 16 12:32:41 2023 +0800 - - add shell script "checkAdd.sh" for checking optional engines - - Engine supporting list as bellow: - - JDBC Flink openLooKeng Pipeline Presto Sqoop Elasticsearch - -commit 042f0cfa14039762455b6548480d8123580e5360 -Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> -Date: Sat Sep 16 12:29:49 2023 +0800 - - add shell script " checkAdd.sh" for optional engines check - -commit 85e582d74485cb043937e4a7bca93cc36bcbc7b2 -Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> -Date: Tue Aug 29 10:42:07 2023 +0800 - - Update install.sh - check addtional engines - -commit 7d0c88bca43ee1bf84407d01a7a52b1e7fe22819 -Author: 赵文恺 <129573858+zhaowenkai111@users.noreply.github.com> -Date: Tue Aug 29 09:39:42 2023 +0800 - - Create checkAdd.sh for non-default engines check - -commit 3b2b1d2a58618d84beaf59ca81d3dfd32119b9c3 -Author: peacewong -Date: Tue Oct 24 20:00:11 2023 +0800 - - The information returned by a running task should not contain error information - -commit b21ad6efe5ba72b7fa1b30981c2f3c476a52133c -Author: peacewong -Date: Tue Oct 24 19:49:01 2023 +0800 - - [Feature][mg-eureka] List eureka service instance close #4884 - -commit b8b82389a9c547c2d81a537e5dea31a56dcc5bb5 -Author: peacewong -Date: Tue Oct 24 19:45:28 2023 +0800 - - Linkis base info support to return linkis cluster info - -commit 5aee61ca496a813a52f43be64a0a75b183092e22 -Author: peacewong -Date: Tue Oct 24 19:44:36 2023 +0800 - - cs service supports active and standby configuration logic - -commit e1111ab54e33414140e9a5d98737e0506bd68cca -Author: peacewong -Date: Tue Oct 24 19:41:35 2023 +0800 - - linkis-cli add version info to source map - -commit 6affc4b2cfd2fcfd39a4e45164f34206499dde68 -Author: peacewong -Date: Tue Oct 24 11:57:05 2023 +0800 - - The value configured by Linkis is trimmed. - -commit ec9d7f5378d7aa117740733208860029e4f25637 -Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> -Date: Mon Oct 23 14:16:55 2023 +0800 - - Jdbc driver is compatible with multiple versions (#4930) - - * Jdbc driver is compatible with multiple versions - - * code formatting - - * Update reference method - -commit 95f229a3a06de69c7b6383f35b684fea13811d82 -Author: peacewong -Date: Tue Oct 10 17:38:16 2023 +0800 - - Data source service forwarding optimization - -commit 8cf5f66e9ce70dbf39f5491e860ba4b3cb8c69da -Author: peacewong -Date: Tue Oct 10 17:37:57 2023 +0800 - - Gateway server log optimize, add token log and add error log to response - -commit 033b2a80db5d882177745244f5bb6a237bb4a9b7 -Author: peacewong -Date: Tue Oct 10 21:12:09 2023 +0800 - - Spark supports printing parameters to task logs - -commit 247616a38541d82503bbc7e14fec2cfe429e206b -Author: peacewong -Date: Tue Oct 10 21:11:34 2023 +0800 - - Python supports killing subprocesses - -commit 922df460d9f0e9e973f28d79ccb0d8f729388a06 -Author: peacewong -Date: Tue Oct 10 21:11:10 2023 +0800 - - Supports spark.conf parameters to configure multiple parameters - -commit f02ee0c330f2cf9a0540f58c65b1f14c96724916 -Author: peacewong -Date: Tue Oct 10 21:09:50 2023 +0800 - - Result set optimization - 1. Double supports NAN - 2. String supports \n \t characters - -commit 9e9ab021943149a314cb71606e177945375fb49b -Author: peacewong -Date: Tue Oct 10 21:08:29 2023 +0800 - - code optimize - -commit 91d086185c112aeeeaa8a21e79c6fdf228e791d7 -Author: peacewong -Date: Tue Oct 10 20:41:36 2023 +0800 - - add init fs retry - -commit 521d30ccd25f611226f498324dec07591a44ed2a -Author: peacewong -Date: Tue Oct 10 20:34:51 2023 +0800 - - optimize hive task progress - -commit 8c1b15d81eeff5cf488a8d1fd4fc400b80b924f5 -Author: peacewong -Date: Tue Oct 10 20:34:15 2023 +0800 - - Added logs for the ask engine stage - -commit 39a8c10d4a3d28f1a1d69323580572b183722d32 -Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> -Date: Sat Oct 14 23:18:50 2023 +0800 - - Bump postcss from 8.4.21 to 8.4.31 in /linkis-web (#4928) - - Bumps [postcss](https://github.com/postcss/postcss) from 8.4.21 to 8.4.31. - - [Release notes](https://github.com/postcss/postcss/releases) - - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - - [Commits](https://github.com/postcss/postcss/compare/8.4.21...8.4.31) - - --- - updated-dependencies: - - dependency-name: postcss - dependency-type: direct:production - ... - - Signed-off-by: dependabot[bot] - Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - -commit ca87f434c524f9b5d947ef44ecec99da44cabe73 -Author: GuoPhilipse <46367746+GuoPhilipse@users.noreply.github.com> -Date: Wed Oct 11 10:20:31 2023 +0800 - - [Bug] use gson to replace jackson (#4936) - - * use gson to replace jackson - - * fix checkstyle - -commit d9935d4b44aef5aa658b033bb9d1732295864eb5 -Author: peacewong -Date: Mon Oct 9 20:56:25 2023 +0800 - - delete duplicate conf - -commit 9f1dd091197d8e1c08459e0446ccfcf8bf5e25c1 -Author: peacewong -Date: Sat Oct 7 10:38:13 2023 +0800 - - Fix build error - -commit b63f34c5b2fa88db1880cd32eaab3615704b7de3 -Author: peacewong -Date: Wed Oct 4 23:49:50 2023 +0800 - - Fix build error - -commit 88d9e1be7391c790b7bb0fee70b25494df88caae -Author: peacewong -Date: Wed Oct 4 23:38:44 2023 +0800 - - support null - -commit c625de68e300eaedc535987ab1158716f664d11a -Author: peacewong -Date: Wed Oct 4 23:38:30 2023 +0800 - - optimize jdbc-driver module - -commit efc85b3801ff6b34d317873b420a7ff6ca9d8138 -Author: peacewong -Date: Wed Oct 4 23:37:18 2023 +0800 - - add version info to linkis-cli - -commit dc8a7ad3c32c032ddbba0dacd48e9f5cdaaff6e0 -Author: peacewong -Date: Sun Oct 1 23:55:08 2023 +0800 - - optimize storage module - -commit 01ae62a563f838aaa7d58977814da7472d3364d9 -Author: peacewong -Date: Fri Sep 22 14:56:19 2023 +0800 - - add ps datasource server conf - -commit 50254ac558e1ab26321a67411b6baee402dece57 -Author: peacewong -Date: Fri Sep 22 14:55:54 2023 +0800 - - optimize consumer code logic - -commit d245994970df12e07b8d5c8592aab6628e4a28df -Author: peacewong -Date: Fri Sep 22 14:55:15 2023 +0800 - - add debug switch params to task - -commit 2b6d80240a065c67085d36ae915cec5b5bfeaae1 -Author: peacewong -Date: Fri Sep 22 14:54:24 2023 +0800 - - add default retry for 401 - -commit fcd6c7c0b554b855fcbad68a0113f422a1982e8a -Author: peacewong -Date: Fri Sep 22 12:09:28 2023 +0800 - - 1. add result set sot utils class - 2. optimize variable operation logic - -commit 16183c973c59380cbb05250f773692bfd02f1dcb -Author: GuoPhilipse <46367746+GuoPhilipse@users.noreply.github.com> -Date: Sun Oct 1 23:00:58 2023 +0800 - - [Feature][linkis-public-enhancements] Mer pes publicservice (#4854) - - * merge pes service - - * remove instance label - -commit 17fabc9a22c7730f320a49d3614a5b47f0863b86 -Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> -Date: Sun Oct 1 22:44:37 2023 +0800 - - Fix linkis cli npe error (#4919) - - * #4907 Incorrect adjustment of log printing resource parameters - - * #4918 fix bug:linkis cli npe error - -commit 2efef01187ec7bc82403bd1ab163b22b6d237cdd -Author: weixiao -Date: Tue Sep 26 21:15:51 2023 +0800 - - [Feature] Add hbase engine to linkis (#4891) - - * [Feature] Add hbase engine to linkis - - * Add the function of kill task and add TEXT ResultSet - - --------- - - Co-authored-by: Longping Jie - -commit c0cebe40fb13850794fa5caffde99ca9c68e8905 -Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> -Date: Mon Sep 25 19:36:17 2023 +0800 - - [BUG] Fix em sort error (#4915) - - * fix em sort error - - * Adjust the sorting when there are null values. - -commit 118435f084fce3b1796cb1c73078a2c84653b3b5 -Author: ChengJie1053 <18033291053@163.com> -Date: Mon Sep 25 17:21:56 2023 +0800 - - Modify spark-k8s-operator.md rest submit task parameters (#4912) - -commit 02a740362d7182098adae91ec4fc9904e04912e3 -Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> -Date: Mon Sep 25 17:21:17 2023 +0800 - - Adjust the sortByResourceRate sorting from large to small. (#4914) - -commit 89a653d75359b912bffade16426b0ab4b850d01a -Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> -Date: Thu Sep 21 21:45:40 2023 +0800 - - feat: support submit pyspark once job on k8s and add clusterlabel to combinedlabel (#4906) - - * feat: support submit pyspark once job on k8s - - * feat: modify variable name - - * feat: add method to build k8s client from kubeConfig - - * feat: add Spark UI port configuration for spark on k8s once job - - * feat: rename userCreatorEngineTypeLabel - - * feat: merge podIP and port into url - - * fix: replace 'empty' with 'blank' - -commit 486892036e48c8e04a45e8e4ae27f486c2884c0e -Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> -Date: Wed Sep 20 20:34:09 2023 +0800 - - #4907 Incorrect adjustment of log printing resource parameters (#4908) - -commit d6a86a1dbcf25669379a4c562740c8310485f50b -Author: ChengJie1053 <18033291053@163.com> -Date: Wed Sep 20 20:33:18 2023 +0800 - - Modify spark.md (#4875) - - * linkis-cli add the engingeConnRuntimeModeOP - -commit 4ecb22e373d7407226acc7ac7c63d698f11b394f -Author: ChengJie1053 <18033291053@163.com> -Date: Wed Sep 20 20:32:46 2023 +0800 - - [Feature] Add nebula engine to linkis (#4903) - - * Add nebula engine to linkis - - * Reuse nebula session - - * Code optimization and remove wds prefix - -commit 8f149e1800a57be2d18fb8e0592191bc3aa8ba69 -Author: ChengJie1053 <18033291053@163.com> -Date: Mon Sep 18 15:09:04 2023 +0800 - - Spark once task supports engingeConnRuntimeMode label (#4896) - - * Spark once task supports engingeConnRuntimeMode label - - * isYarnClusterMode extracts to LabelUtil - - * Modify SparkEngineConnFactory - -commit 80b2be58b4f5680a1b4a94803e4dc58c81b59bca -Author: peacewong -Date: Tue Sep 12 12:10:25 2023 +0800 - - code optimize - -commit 703eb501e781a509ad5ec615eaa462598bbe82d1 -Author: peacewong -Date: Mon Sep 11 22:30:05 2023 +0800 - - code optimize - -commit 5e52f909e4c06aedb4c5e9ab7fa2c8bae7f23884 -Author: peacewong -Date: Fri Sep 8 18:57:48 2023 +0800 - - add bml - -commit 5ca67262ad93ab09c3338393155f3f5fa8717078 -Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> -Date: Fri Sep 8 14:38:54 2023 +0800 - - feat: support spark submit jar on k8s (#4867) - - * feat: support spark submit jar on k8s - - * feat: add spark cores setting priority - - * feat: use UUID to generate driverPodName - - * feat: optimize code of executor creation - -commit 8dfcf86ec42fd9f9ab1aed96adb7c0b16c60a11d -Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> -Date: Fri Sep 8 14:37:01 2023 +0800 - - #4900 Fix linkismanager allocation ECM error logic, adjust resource allocation logic from large to small (#4901) - - Co-authored-by: weipengfei - -commit 8181efc1cf0807d6bca18df973e4db53580c4949 -Author: ChengJie1053 <18033291053@163.com> -Date: Wed Sep 6 10:27:31 2023 +0800 - - HttpBmlClient delete useless code (#4898) - -commit e88d5b5b70bd90384d5a3d60ba0d0090cafa7a2d -Author: peacewong -Date: Tue Sep 5 21:25:42 2023 +0800 - - code optimize - -commit 42435c50c9282a1b5e47ecd934f0abadc08fc734 -Author: peacewong -Date: Mon Sep 4 19:19:07 2023 +0800 - - bak - -commit a3e135ea1cace9b635dadaae03342984c5a28960 -Author: ChengJie1053 <18033291053@163.com> -Date: Mon Sep 4 16:24:39 2023 +0800 - - fix spark k8s bug (#4895) - -commit 4169e703c427842d5e932b9375423d74017465ad -Author: ChengJie1053 <18033291053@163.com> -Date: Fri Sep 1 19:09:53 2023 +0800 - - Spark k8s operator task Added status acquisition (#4889) - - * Spark k8s operator task Added status acquisition - - * spark The obtaining status of the k8s operator task is changed to k8s list-watch - - * spark The obtaining status of the k8s operator task is changed to k8s list-watch - -commit b5453a2672db5799e3f40653e28ff27f76963a7b -Author: peacewong -Date: Fri Sep 1 19:07:34 2023 +0800 - - Fix linkis cli async exeute throw npe (#4870) - - * Fix linkis cli async exeute throw npe close #4869 - - * Optimize Code - -commit 5a58d73d480f167506ea3bb5c0c6a1546e55e1e2 -Author: ChengJie1053 <18033291053@163.com> -Date: Thu Aug 24 17:02:03 2023 +0800 - - Fix spark yarn cluster mode bug (#4872) - - * fix spark yarn cluster mode bug - - * fix spark yarn cluster mode bug - -commit 5fa73f2576cc159dfd394c7b6bdc3ad57f777380 -Author: guoshupei <15764973965@163.com> -Date: Tue Aug 22 21:57:10 2023 +0800 - - add mybatis config - -commit bdc3e0eb72ce543db841bb937bb5d96fcbd7a005 -Author: guoshupei <15764973965@163.com> -Date: Tue Aug 22 16:08:52 2023 +0800 - - add comment - -commit faa8d15315a802553c6a261770e3cd7fa8d23640 -Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> -Date: Thu Aug 17 11:14:08 2023 +0800 - - fix: correct the length check of cluster label (#4865) - -commit a94c87653f6ee4c0303876fb1349dbd24e0d614a -Author: ChengJie1053 <18033291053@163.com> -Date: Mon Aug 14 19:11:01 2023 +0800 - - spark support yarn cluster (#4850) - - * spark support yarn cluster - - * spark support yarn cluster - - * spark support yarn cluster - - * spark support yarn cluster - - * spark support yarn cluster - - * LinkisManagerApplication Remove useless code - - * spark support yarn cluster - - * spark support yarn cluster - - * spark support yarn cluster - - * spark support yarn cluster - - * spark support yarn cluster - - * spark support yarn cluster - -commit abbcb733953d6a79faa8d8493b9ca52afa95f75e -Author: zhangwejun <33748538+zhangwejun@users.noreply.github.com> -Date: Mon Aug 14 18:12:05 2023 +0800 - - Fix Chinese garbled code issue when HTTP post input parameter is param (#4860) - - * upgrade the version to 1.4.0 - - * upgrade the version to 1.4.0 - - * Fix Chinese garbled code issue when HTTP post input parameter is param - - * upgrade the version to 1.5.0-SNAPSHOT - - * upgrade the version to 1.5.0-SNAPSHOT - - --------- - - Co-authored-by: Casion - Co-authored-by: peacewong - -commit 3d681fb8a74142417c510687527438deb2e31577 -Author: guoshupei <15764973965@163.com> -Date: Mon Aug 14 15:05:45 2023 +0800 - - merge master - -commit 4571c4c9e777ce26a028187f2e371864a4aa6f79 -Merge: caeeab9fc 1dd22bc4a -Author: guoshupei <15764973965@163.com> -Date: Mon Aug 14 11:36:13 2023 +0800 - - Merge branch 'master' of https://github.com/apache/linkis into dev-1.3.3-feature-ha-4181 - -  Conflicts: -  linkis-computation-governance/linkis-engineconn/linkis-computation-engineconn/src/main/scala/org/apache/linkis/engineconn/computation/executor/service/TaskExecutionServiceImpl.scala -  linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceRestfulApi.java -  linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/server/DefaultEntranceServer.java -  linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/EntranceServer.scala -  linkis-dist/package/conf/linkis-cg-entrance.properties -  linkis-dist/package/conf/linkis-mg-gateway.properties - -commit caeeab9fc13489adad51a06cf86bd0733a761e05 -Author: guoshupei <15764973965@163.com> -Date: Mon Aug 14 11:23:30 2023 +0800 - - sql optimize and bug fix - -commit 1dd22bc4a65d4cc7a9245745d6df06f0c41dc165 -Author: ChengJie1053 <18033291053@163.com> -Date: Fri Aug 11 11:29:21 2023 +0800 - - LinkisManagerApplication Remove useless code (#4856) - -commit 64cdd4d1fa0a6f22c76a7c7ec8d9c4902438e486 -Author: 人生有如两个橘子 <15764973965@163.com> -Date: Wed Aug 9 21:58:07 2023 +0800 - - [Feature] Enhanced FileSource to support more parameters feature (#4838) - - * Enhanced FileSource to support more parameters feature - - * Delete param of `limitTotalLine` and it can be replaced by method of `fileInfo` - - * Remove redundant references - -commit f08773d93e4d297d8909054a2c4c04eba8dad149 -Author: ChengJie1053 <18033291053@163.com> -Date: Tue Aug 8 20:43:18 2023 +0800 - - Flink upgrade 1.16.2 and compatible with multiple versions (#4753) - - * Flink upgrade 1.16.2 - - * Flink is compatible with multiple versions - - * Compatible with flink1.16.2 modifications - - * Compatible with flink1.12.2 modifications - - * Compatible with flink1.12.2 modifications - - * Modify the flink version - - * Compatible with flink1.12.2 modifications - - * Remove useless code - - * Modified flink-shims-1.16.2 pom - - * Modified known-dependencies.txt - - * add license - - * Resolving code conflicts - - * Resolving code conflicts - - * Resolving code conflicts - - * Resolving code conflicts - - * Resolving code conflicts - - * spark support yarn cluster - - * Modify flink pom - -commit dacd2c8fb5c53169bfc2ab3c0e9c80727d9a5f6e -Author: GuoPhilipse <46367746+GuoPhilipse@users.noreply.github.com> -Date: Mon Aug 7 19:24:11 2023 +0800 - - [Feature][linkis-public-enhancements] Merge pes client and common (#4853) - - * merge pes client and common - - * fix cs common - - * optimize import - - * optimize import - - * rename module linkis-rpc-client to be linkis-pes-rpc-client - -commit 958c4940a9e56f367683bc2ba0284c7402d63e6d -Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> -Date: Sat Aug 5 23:31:25 2023 +0800 - - feat: "spark-submit jar on k8s" related label and resource expansion (#4784) - - * feat: add k8sCluster label recognition - - * feat: add kubernetes resource related basic classes - - * feat: add kubernetes resource related classes - - * fix: supplement third dependency - - * feat: k8s resource support different namespace - - * fix: fix some basic problems - - * feat: extend the length of column label_key of linkis_cg_manager_label to 50 - - * fix: format code according to scala style - - * feat: KubernetesResourceRequester supports multiple providers - - * fix: fix wrong variable use - - * feat: adjust constants - - * feat: adjust constants - - * fix: format code according to scala style - -commit bbcb5189370aea2355adac851c3785bc2e9d5a2b -Author: zlucelia <66543456+Zhao-LX2000@users.noreply.github.com> -Date: Sat Aug 5 23:30:20 2023 +0800 - - feat: YarnResourceRequester supports multiple providers (#4852) - - * feat: YarnResourceRequester supports multiple providers - - * fix: format code according to scala style - -commit 5e50196f2be161c420ee6b20a4d38719c7d9935e -Author: GuoPhilipse <46367746+GuoPhilipse@users.noreply.github.com> -Date: Fri Aug 4 16:17:16 2023 +0800 - - merge datasource module (#4847) - -commit 5fa1697b0e84f55aac752a869b44480953e55e37 -Author: ChengJie1053 <18033291053@163.com> -Date: Wed Aug 2 20:12:10 2023 +0800 - - Modify spark-k8s-operator.md (#4837) - -commit 9f8559b048422c6961807010a58bfe5189792ed9 -Author: 人生有如两个橘子 <15764973965@163.com> -Date: Wed Aug 2 10:28:25 2023 +0800 - - [optimize] return to the custom error info (#4835) - - * [optimize] return to the custom error info - - * format - -commit ead682223d02af3aec0f6d0c18ede0753e1359f0 -Author: sjgllgh <129264181+sjgllgh@users.noreply.github.com> -Date: Fri Jul 28 14:24:04 2023 +0800 - - fix pg bug (#4833) From ced29f2aa433a76dc647a0b262b5d177135e08d5 Mon Sep 17 00:00:00 2001 From: peacewong Date: Fri, 12 Apr 2024 17:42:39 +0800 Subject: [PATCH 07/13] code optimize --- .../apache/linkis/rpc/conf/DynamicFeignClient.java | 12 ++++++------ .../rpc/conf/NacosClientCacheManualRefresher.java | 5 ----- .../rpc/errorcode/LinkisRpcErrorCodeSummary.java | 2 ++ .../ServiceInstancePriorityLoadBalancer.java | 11 +++++++---- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/DynamicFeignClient.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/DynamicFeignClient.java index dd1f6a7dc9..89eb6083b9 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/DynamicFeignClient.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/DynamicFeignClient.java @@ -57,7 +57,7 @@ public T getFeignClient( public T getFeignClient(final Class type, String serviceName, final String serviceUrl) { String k = serviceName; - if (StringUtils.isNotEmpty(serviceUrl)) { + if (StringUtils.isNotBlank(serviceUrl)) { k = serviceUrl; } return CACHE_BEAN.computeIfAbsent( @@ -65,7 +65,7 @@ public T getFeignClient(final Class type, String serviceName, final String se (t) -> { FeignClientBuilder.Builder builder = this.feignClientBuilder.forType(type, serviceName); - if (StringUtils.isNotEmpty(serviceUrl)) { + if (StringUtils.isNotBlank(serviceUrl)) { builder.url(serviceUrl); } return builder.build(); @@ -78,7 +78,7 @@ public T getFeignClient( final String serviceName, final String serviceUrl) { String k = serviceName; - if (StringUtils.isNotEmpty(serviceUrl)) { + if (StringUtils.isNotBlank(serviceUrl)) { k = serviceUrl; } return CACHE_BEAN.computeIfAbsent( @@ -88,7 +88,7 @@ public T getFeignClient( feignClientFactoryBean.setFallbackFactory(fallbackFactory); FeignClientBuilder.Builder builder = this.feignClientBuilder.forType(type, feignClientFactoryBean, serviceName); - if (StringUtils.isNotEmpty(serviceUrl)) { + if (StringUtils.isNotBlank(serviceUrl)) { builder.url(serviceUrl); } return builder.build(); @@ -101,7 +101,7 @@ public T getFeignClient( final String serviceName, final String serviceUrl) { String k = serviceName; - if (StringUtils.isNotEmpty(serviceUrl)) { + if (StringUtils.isNotBlank(serviceUrl)) { k = serviceUrl; } return CACHE_BEAN.computeIfAbsent( @@ -109,7 +109,7 @@ public T getFeignClient( (t) -> { FeignClientBuilder.Builder builder = this.feignClientBuilder.forType(type, clientFactoryBean, serviceName); - if (StringUtils.isNotEmpty(serviceUrl)) { + if (StringUtils.isNotBlank(serviceUrl)) { builder.url(serviceUrl); } return builder.build(); diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java index db26cd0f2c..8784122bd1 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java @@ -30,11 +30,6 @@ public class NacosClientCacheManualRefresher implements CacheManualRefresher { LoggerFactory.getLogger(NacosClientCacheManualRefresher.class); public void refresh() { - try { - logger.warn("Failed to obtain nacos metadata. Wait 100 milliseconds"); - Thread.sleep(100L); - } catch (InterruptedException e) { - } } } diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/errorcode/LinkisRpcErrorCodeSummary.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/errorcode/LinkisRpcErrorCodeSummary.java index b87e730994..a8daece891 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/errorcode/LinkisRpcErrorCodeSummary.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/errorcode/LinkisRpcErrorCodeSummary.java @@ -32,6 +32,8 @@ public enum LinkisRpcErrorCodeSummary implements LinkisErrorCode { 10051, "The instance:{0} of application {1} does not exist(应用程序:{0} 的实例:{1} 不存在)."), INSTANCE_ERROR(10052, "The instance:{0} is error should ip:port."), + + INSTANCE_NOT_FOUND_ERROR(10053, "The instance:{0} is not found."), RPC_INIT_ERROR(10054, "Asyn RPC Consumer Thread has stopped!(Asyn RPC Consumer 线程已停止!)"); /** 错误码 */ diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java index 13cdef1988..506746a51b 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java @@ -18,6 +18,7 @@ package org.apache.linkis.rpc.loadbalancer; import org.apache.linkis.rpc.conf.CacheManualRefresher; +import org.apache.linkis.rpc.conf.RPCConfiguration; import org.apache.linkis.rpc.constant.RpcConstant; import org.apache.linkis.rpc.errorcode.LinkisRpcErrorCodeSummary; import org.apache.linkis.rpc.exception.NoInstanceExistsException; @@ -56,6 +57,8 @@ public class ServiceInstancePriorityLoadBalancer implements ReactorServiceInstan final AtomicInteger position; private final ObjectProvider serviceInstanceListSupplierProvider; + private final Long maxWaitTime = RPCConfiguration.RPC_SERVICE_REFRESH_MAX_WAIT_TIME().getValue().toLong(); + public ServiceInstancePriorityLoadBalancer( ObjectProvider serviceInstanceListSupplierProvider, String serviceId) { @@ -96,7 +99,7 @@ private Response processInstanceResponse( String clientIp) { Response serviceInstanceResponse = getInstanceResponse(serviceInstances, clientIp); - Long endTtime = System.currentTimeMillis() + 2 * 60 * 1000; + Long endTime = System.currentTimeMillis() + maxWaitTime; List linkisLoadBalancerTypeList = ((RequestDataContext) request.getContext()) @@ -111,7 +114,7 @@ private Response processInstanceResponse( while (null == serviceInstanceResponse && StringUtils.isNotBlank(clientIp) && isRPC(linkisLoadBalancerType) - && System.currentTimeMillis() < endTtime) { + && System.currentTimeMillis() < endTime) { cacheManualRefresher.refresh(); List instances = SpringCloudFeignConfigurationCache$.MODULE$.discoveryClient().getInstances(serviceId); @@ -127,8 +130,8 @@ && isRPC(linkisLoadBalancerType) if (null == serviceInstanceResponse && StringUtils.isNotBlank(clientIp)) { throw new NoInstanceExistsException( - LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorCode(), - MessageFormat.format(LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorDesc(), clientIp)); + LinkisRpcErrorCodeSummary.INSTANCE_NOT_FOUND_ERROR.getErrorCode(), + MessageFormat.format(LinkisRpcErrorCodeSummary.INSTANCE_NOT_FOUND_ERROR.getErrorDesc(), clientIp)); } if (supplier instanceof SelectedInstanceCallback && serviceInstanceResponse.hasServer()) { From 2eefd7cdcdf11d2577a06a560f98465f125903df Mon Sep 17 00:00:00 2001 From: peacewong Date: Sun, 14 Apr 2024 21:59:20 +0800 Subject: [PATCH 08/13] use feign requestInterceptor to fixed server --- .../rpc/conf/FeignRequestInterceptor.java | 3 -- .../GatewayLoadBalancerConfiguration.java | 20 -------- ...LinkisLoadBalancerClientConfiguration.java | 4 +- .../org/apache/linkis/rpc/BaseRPCSender.scala | 49 +++++-------------- .../rpc/sender/SpringMVCRPCSender.scala | 37 ++++++++------ 5 files changed, 34 insertions(+), 79 deletions(-) delete mode 100644 linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/GatewayLoadBalancerConfiguration.java diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java index ef1c2dd095..1a8c15ca77 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java @@ -37,7 +37,6 @@ import feign.RequestInterceptor; import feign.RequestTemplate; -@Component public class FeignRequestInterceptor implements RequestInterceptor { @Override @@ -55,8 +54,6 @@ public void apply(RequestTemplate requestTemplate) { requestTemplate.body(), org.apache.linkis.common.conf.Configuration.BDP_ENCODING().getValue()); Message message = BDPJettyServerHelper.gson().fromJson(body, Message.class); - headers.put( - RpcConstant.FIXED_INSTANCE, Arrays.asList(BaseRPCSender.getFixedInstanceInfo(message))); requestTemplate.headers(headers); } catch (UnsupportedEncodingException e) { } diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/GatewayLoadBalancerConfiguration.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/GatewayLoadBalancerConfiguration.java deleted file mode 100644 index 0c9aecf177..0000000000 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/GatewayLoadBalancerConfiguration.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.rpc.loadbalancer; - -public class GatewayLoadBalancerConfiguration {} diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java index f4d501dfe4..690c8e21eb 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java @@ -26,10 +26,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; -@Configuration -@LoadBalancerClients(defaultConfiguration = {LinkisLoadBalancerClientConfiguration.class}) + public class LinkisLoadBalancerClientConfiguration { - @Bean public ReactorLoadBalancer customLoadBalancer( Environment environment, LoadBalancerClientFactory loadBalancerClientFactory) { String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME); diff --git a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/BaseRPCSender.scala b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/BaseRPCSender.scala index 1c4e43b3cc..149179f8b1 100644 --- a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/BaseRPCSender.scala +++ b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/BaseRPCSender.scala @@ -22,28 +22,27 @@ import org.apache.linkis.common.ServiceInstance import org.apache.linkis.common.exception.WarnException import org.apache.linkis.common.utils.Logging import org.apache.linkis.protocol.Protocol -import org.apache.linkis.rpc.conf.DynamicFeignClient import org.apache.linkis.rpc.conf.RPCConfiguration.{ BDP_RPC_SENDER_ASYN_CONSUMER_THREAD_FREE_TIME_MAX, BDP_RPC_SENDER_ASYN_CONSUMER_THREAD_MAX, BDP_RPC_SENDER_ASYN_QUEUE_CAPACITY } -import org.apache.linkis.rpc.constant.RpcConstant import org.apache.linkis.rpc.interceptor._ import org.apache.linkis.rpc.transform.{RPCConsumer, RPCProduct} import org.apache.linkis.server.Message - -import org.apache.commons.lang3.StringUtils +import org.apache.linkis.server.conf.ServerConfiguration import java.util import scala.concurrent.duration.Duration import scala.runtime.BoxedUnit +import feign.{Feign, Retryer} +import feign.slf4j.Slf4jLogger + private[rpc] class BaseRPCSender extends Sender with Logging { private var name: String = _ private var rpc: RPCReceiveRemote = _ - private var dynamicFeignClient: DynamicFeignClient[RPCReceiveRemote] = _ protected def getRPCInterceptors: Array[RPCInterceptor] = Array.empty @@ -68,21 +67,18 @@ private[rpc] class BaseRPCSender extends Sender with Logging { rpc } - private def getDynamicFeignClient: DynamicFeignClient[RPCReceiveRemote] = { - if (dynamicFeignClient == null) this synchronized { - if (dynamicFeignClient == null) dynamicFeignClient = new DynamicFeignClient() - } - dynamicFeignClient - } - private[rpc] def getApplicationName = name - def getSenderInstance(): String = { - null - } + protected def doBuilder(builder: Feign.Builder): Unit = + builder.retryer(Retryer.NEVER_RETRY) protected def newRPC: RPCReceiveRemote = { - getDynamicFeignClient.getFeignClient(classOf[RPCReceiveRemote], name) + val builder = Feign.builder.logger(new Slf4jLogger()).logLevel(feign.Logger.Level.FULL) + doBuilder(builder) + var url = if (name.startsWith("http://")) name else "http://" + name + if (url.endsWith("/")) url = url.substring(0, url.length - 1) + url += ServerConfiguration.BDP_SERVER_RESTFUL_URI.getValue + builder.target(classOf[RPCReceiveRemote], url) } private def execute(message: Any)(op: => Any): Any = message match { @@ -94,9 +90,6 @@ private[rpc] class BaseRPCSender extends Sender with Logging { override def ask(message: Any): Any = execute(message) { val msg = RPCProduct.getRPCProduct.toMessage(message) - if (StringUtils.isNotBlank(getSenderInstance())) { - BaseRPCSender.addFixedInstanceInfo(msg.getData, getSenderInstance()) - } BaseRPCSender.addInstanceInfo(msg.getData) val response = getRPC.receiveAndReply(msg) RPCConsumer.getRPCConsumer.toObject(response) @@ -105,9 +98,6 @@ private[rpc] class BaseRPCSender extends Sender with Logging { override def ask(message: Any, timeout: Duration): Any = execute(message) { val msg = RPCProduct.getRPCProduct.toMessage(message) msg.data("duration", timeout.toMillis) - if (StringUtils.isNotBlank(getSenderInstance())) { - BaseRPCSender.addFixedInstanceInfo(msg.getData, getSenderInstance()) - } BaseRPCSender.addInstanceInfo(msg.getData) val response = getRPC.receiveAndReplyInMills(msg) RPCConsumer.getRPCConsumer.toObject(response) @@ -115,9 +105,6 @@ private[rpc] class BaseRPCSender extends Sender with Logging { private def sendIt(message: Any, op: Message => Message): Unit = execute(message) { val msg = RPCProduct.getRPCProduct.toMessage(message) - if (StringUtils.isNotBlank(getSenderInstance())) { - BaseRPCSender.addFixedInstanceInfo(msg.getData, getSenderInstance()) - } BaseRPCSender.addInstanceInfo(msg.getData) RPCConsumer.getRPCConsumer.toObject(op(msg)) match { case w: WarnException => logger.warn("RPC requests an alarm!(RPC请求出现告警!)", w) @@ -188,16 +175,4 @@ private[rpc] object BaseRPCSender extends Logging { ServiceInstance(name, instance) } - def addFixedInstanceInfo(map: util.Map[String, Object], fixedInstance: String): Unit = { - map.put(RpcConstant.FIXED_INSTANCE, fixedInstance) - } - - def getFixedInstanceInfo(message: Message): String = { - if (null != message && null != message.getData) { - message.getData.getOrDefault(RpcConstant.FIXED_INSTANCE, null).asInstanceOf[String] - } else { - null - } - } - } diff --git a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala index 1aae1f0cf3..b04e1fbf42 100644 --- a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala +++ b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala @@ -17,27 +17,40 @@ package org.apache.linkis.rpc.sender +import feign._ +import org.apache.commons.lang3.StringUtils import org.apache.linkis.common.ServiceInstance -import org.apache.linkis.rpc.{BaseRPCSender, RPCMessageEvent, RPCSpringBeanCache} import org.apache.linkis.rpc.interceptor.{RPCInterceptor, ServiceInstanceRPCInterceptorChain} - -import org.apache.commons.lang3.StringUtils - -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.core.env.Environment +import org.apache.linkis.rpc.{BaseRPCSender, RPCMessageEvent, RPCSpringBeanCache} private[rpc] class SpringMVCRPCSender private[rpc] ( private[rpc] val serviceInstance: ServiceInstance ) extends BaseRPCSender(serviceInstance.getApplicationName) { + import SpringCloudFeignConfigurationCache._ + override protected def getRPCInterceptors: Array[RPCInterceptor] = RPCSpringBeanCache.getRPCInterceptors override protected def createRPCInterceptorChain() = new ServiceInstanceRPCInterceptorChain(0, getRPCInterceptors, serviceInstance) - @Autowired - private var env: Environment = _ + override protected def doBuilder(builder: Feign.Builder): Unit = { + if (serviceInstance != null && StringUtils.isNotBlank(serviceInstance.getInstance)) { + builder.requestInterceptor(new RequestInterceptor() { + def apply(template: RequestTemplate ): Unit = { + // Fixed instance + template.target(s"http://${serviceInstance.getInstance}") + } + }) + } + super.doBuilder(builder) + builder + .contract(getContract) + .encoder(getEncoder) + .decoder(getDecoder) + .requestInterceptor(getRPCTicketIdRequestInterceptor) + } /** * Deliver is an asynchronous method that requests the target microservice asynchronously, @@ -66,12 +79,4 @@ private[rpc] class SpringMVCRPCSender private[rpc] ( s"RPCSender(${serviceInstance.getApplicationName})" } else s"RPCSender($getApplicationName, ${serviceInstance.getInstance})" - override def getSenderInstance(): String = { - if (null != serviceInstance) { - serviceInstance.getInstance - } else { - null - } - } - } From 7624aa8c83b28ef56c16346d0997a7abba57c988 Mon Sep 17 00:00:00 2001 From: peacewong Date: Tue, 16 Apr 2024 17:01:46 +0800 Subject: [PATCH 09/13] add gateway ip priority load balancer --- .../rpc/conf/FeignRequestInterceptor.java | 3 - .../conf/NacosClientCacheManualRefresher.java | 4 +- ...LinkisLoadBalancerClientConfiguration.java | 4 - .../ServiceInstancePriorityLoadBalancer.java | 6 +- .../apache/linkis/rpc/RPCReceiveRemote.scala | 15 +-- .../linkis/rpc/RPCSpringBeanCache.scala | 8 -- .../rpc/sender/SpringMVCRPCSender.scala | 10 +- .../StaticAuthenticationStrategy.scala | 20 +++- .../response/DWSAuthenticationResult.scala | 5 + .../http/GatewayAuthorizationFilter.java | 6 +- .../http/IpPriorityLoadBalancer.java | 107 ++++++++++++++++++ ...LinkisLoadBalancerClientConfiguration.java | 35 ++++++ 12 files changed, 180 insertions(+), 43 deletions(-) create mode 100644 linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/IpPriorityLoadBalancer.java create mode 100644 linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/LinkisLoadBalancerClientConfiguration.java diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java index 1a8c15ca77..26db20d769 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java @@ -17,15 +17,12 @@ package org.apache.linkis.rpc.conf; -import org.apache.linkis.rpc.BaseRPCSender; import org.apache.linkis.rpc.constant.RpcConstant; import org.apache.linkis.server.BDPJettyServerHelper; import org.apache.linkis.server.Message; import org.apache.linkis.server.security.SSOUtils$; import org.apache.linkis.server.security.SecurityFilter$; -import org.springframework.stereotype.Component; - import java.io.UnsupportedEncodingException; import java.util.Arrays; import java.util.Collection; diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java index 8784122bd1..34e2357541 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java @@ -29,7 +29,5 @@ public class NacosClientCacheManualRefresher implements CacheManualRefresher { private static final Logger logger = LoggerFactory.getLogger(NacosClientCacheManualRefresher.class); - public void refresh() { - - } + public void refresh() {} } diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java index 690c8e21eb..6701c0acdc 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java @@ -18,15 +18,11 @@ package org.apache.linkis.rpc.loadbalancer; import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients; import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer; import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; - public class LinkisLoadBalancerClientConfiguration { public ReactorLoadBalancer customLoadBalancer( Environment environment, LoadBalancerClientFactory loadBalancerClientFactory) { diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java index 506746a51b..3623cbccf5 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java @@ -57,7 +57,8 @@ public class ServiceInstancePriorityLoadBalancer implements ReactorServiceInstan final AtomicInteger position; private final ObjectProvider serviceInstanceListSupplierProvider; - private final Long maxWaitTime = RPCConfiguration.RPC_SERVICE_REFRESH_MAX_WAIT_TIME().getValue().toLong(); + private final Long maxWaitTime = + RPCConfiguration.RPC_SERVICE_REFRESH_MAX_WAIT_TIME().getValue().toLong(); public ServiceInstancePriorityLoadBalancer( ObjectProvider serviceInstanceListSupplierProvider, @@ -131,7 +132,8 @@ && isRPC(linkisLoadBalancerType) if (null == serviceInstanceResponse && StringUtils.isNotBlank(clientIp)) { throw new NoInstanceExistsException( LinkisRpcErrorCodeSummary.INSTANCE_NOT_FOUND_ERROR.getErrorCode(), - MessageFormat.format(LinkisRpcErrorCodeSummary.INSTANCE_NOT_FOUND_ERROR.getErrorDesc(), clientIp)); + MessageFormat.format( + LinkisRpcErrorCodeSummary.INSTANCE_NOT_FOUND_ERROR.getErrorDesc(), clientIp)); } if (supplier instanceof SelectedInstanceCallback && serviceInstanceResponse.hasServer()) { diff --git a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/RPCReceiveRemote.scala b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/RPCReceiveRemote.scala index 458ada9308..c539652d31 100644 --- a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/RPCReceiveRemote.scala +++ b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/RPCReceiveRemote.scala @@ -23,22 +23,13 @@ import org.springframework.web.bind.annotation.{RequestBody, RequestMapping, Req private[rpc] trait RPCReceiveRemote { - @RequestMapping( - value = Array("${spring.mvc.servlet.path}/rpc/receive"), - method = Array(RequestMethod.POST) - ) + @RequestMapping(value = Array("/rpc/receive"), method = Array(RequestMethod.POST)) def receive(@RequestBody message: Message): Message - @RequestMapping( - value = Array("${spring.mvc.servlet.path}/rpc/receiveAndReply"), - method = Array(RequestMethod.POST) - ) + @RequestMapping(value = Array("/rpc/receiveAndReply"), method = Array(RequestMethod.POST)) def receiveAndReply(@RequestBody message: Message): Message - @RequestMapping( - value = Array("${spring.mvc.servlet.path}/rpc/replyInMills"), - method = Array(RequestMethod.POST) - ) + @RequestMapping(value = Array("/rpc/replyInMills"), method = Array(RequestMethod.POST)) def receiveAndReplyInMills(@RequestBody message: Message): Message } diff --git a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/RPCSpringBeanCache.scala b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/RPCSpringBeanCache.scala index ff542aaad5..00fa019d99 100644 --- a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/RPCSpringBeanCache.scala +++ b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/RPCSpringBeanCache.scala @@ -33,7 +33,6 @@ private[rpc] object RPCSpringBeanCache extends Logging { private var rpcServerLoader: RPCServerLoader = _ private var senderBuilders: Array[BroadcastSenderBuilder] = _ private var rpcReceiveRestful: RPCReceiveRestful = _ - private var rpcReceiveRemote: RPCReceiveRemote = _ def registerReceiver(receiverName: String, receiver: Receiver): Unit = { if (beanNameToReceivers == null) { @@ -64,13 +63,6 @@ private[rpc] object RPCSpringBeanCache extends Logging { rpcReceiveRestful } - def getRPCReceiveRemote: RPCReceiveRemote = { - if (rpcReceiveRemote == null) { - rpcReceiveRemote = getApplicationContext.getBean(classOf[RPCReceiveRemote]) - } - rpcReceiveRemote - } - private[rpc] def getReceivers: util.Map[String, Receiver] = { if (beanNameToReceivers == null) { beanNameToReceivers = getApplicationContext.getBeansOfType(classOf[Receiver]) diff --git a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala index b04e1fbf42..6fcb567081 100644 --- a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala +++ b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala @@ -17,11 +17,13 @@ package org.apache.linkis.rpc.sender -import feign._ -import org.apache.commons.lang3.StringUtils import org.apache.linkis.common.ServiceInstance -import org.apache.linkis.rpc.interceptor.{RPCInterceptor, ServiceInstanceRPCInterceptorChain} import org.apache.linkis.rpc.{BaseRPCSender, RPCMessageEvent, RPCSpringBeanCache} +import org.apache.linkis.rpc.interceptor.{RPCInterceptor, ServiceInstanceRPCInterceptorChain} + +import org.apache.commons.lang3.StringUtils + +import feign._ private[rpc] class SpringMVCRPCSender private[rpc] ( private[rpc] val serviceInstance: ServiceInstance @@ -38,7 +40,7 @@ private[rpc] class SpringMVCRPCSender private[rpc] ( override protected def doBuilder(builder: Feign.Builder): Unit = { if (serviceInstance != null && StringUtils.isNotBlank(serviceInstance.getInstance)) { builder.requestInterceptor(new RequestInterceptor() { - def apply(template: RequestTemplate ): Unit = { + def apply(template: RequestTemplate): Unit = { // Fixed instance template.target(s"http://${serviceInstance.getInstance}") } diff --git a/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-httpclient-support/src/main/scala/org/apache/linkis/httpclient/dws/authentication/StaticAuthenticationStrategy.scala b/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-httpclient-support/src/main/scala/org/apache/linkis/httpclient/dws/authentication/StaticAuthenticationStrategy.scala index 2bd50a1ac8..a684152ad9 100644 --- a/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-httpclient-support/src/main/scala/org/apache/linkis/httpclient/dws/authentication/StaticAuthenticationStrategy.scala +++ b/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-httpclient-support/src/main/scala/org/apache/linkis/httpclient/dws/authentication/StaticAuthenticationStrategy.scala @@ -101,12 +101,28 @@ class StaticAuthenticationStrategy(override protected val sessionMaxAliveTime: L override def isTimeout(authentication: Authentication): Boolean = System.currentTimeMillis() - authentication.getLastAccessTime >= serverSessionTimeout + /** + * Forced login needs to consider the situation of multiple calls at the same time. If there are + * simultaneous calls, it should not be updated. request time < last creatTime and last createTime + * - currentTime < 1s + * @param requestAction + * @param serverUrl + * @return + */ override def enforceLogin(requestAction: Action, serverUrl: String): Authentication = { val key = getKey(requestAction, serverUrl) if (key == null) return null + val requestTime = System.currentTimeMillis() key.intern() synchronized { - val authentication = tryLogin(requestAction, serverUrl) - putSession(key, authentication) + var authentication = getAuthenticationActionByKey(key) + if ( + authentication == null || (authentication.getCreateTime < requestTime && (System + .currentTimeMillis() - authentication.getCreateTime) > 1000) + ) { + authentication = tryLogin(requestAction, serverUrl) + putSession(key, authentication) + logger.info(s"$key try enforceLogin") + } authentication } } diff --git a/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-httpclient-support/src/main/scala/org/apache/linkis/httpclient/dws/response/DWSAuthenticationResult.scala b/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-httpclient-support/src/main/scala/org/apache/linkis/httpclient/dws/response/DWSAuthenticationResult.scala index 6ea3fc1673..6d714a3cdd 100644 --- a/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-httpclient-support/src/main/scala/org/apache/linkis/httpclient/dws/response/DWSAuthenticationResult.scala +++ b/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-httpclient-support/src/main/scala/org/apache/linkis/httpclient/dws/response/DWSAuthenticationResult.scala @@ -52,6 +52,8 @@ class DWSAuthenticationResult(response: HttpResponse, serverUrl: String) override def getAuthentication: Authentication = if (getStatus == 0) new HttpAuthentication { private var lastAccessTime: Long = System.currentTimeMillis + private val createTime: Long = System.currentTimeMillis() + override def authToCookies: Array[Cookie] = Array.empty override def authToHeaders: util.Map[String, String] = new util.HashMap[String, String]() @@ -61,6 +63,9 @@ class DWSAuthenticationResult(response: HttpResponse, serverUrl: String) override def getLastAccessTime: Long = lastAccessTime override def updateLastAccessTime(): Unit = lastAccessTime = System.currentTimeMillis + + override def getCreateTime: Long = createTime + } else { throw new HttpMessageParseException( 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..79371f8539 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; @@ -132,10 +131,7 @@ private Route getRealRoute( } String uri = scheme + serviceInstance.getApplicationName(); if (StringUtils.isNotBlank(serviceInstance.getInstance())) { - exchange - .getRequest() - .mutate() - .header(RpcConstant.FIXED_INSTANCE, serviceInstance.getInstance()); + exchange.getRequest().mutate().header("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 new file mode 100644 index 0000000000..6300cbce5b --- /dev/null +++ b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/IpPriorityLoadBalancer.java @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.linkis.gateway.springcloud.http; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; + +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.client.loadbalancer.*; +import org.springframework.cloud.loadbalancer.core.NoopServiceInstanceListSupplier; +import org.springframework.cloud.loadbalancer.core.ReactorServiceInstanceLoadBalancer; +import org.springframework.cloud.loadbalancer.core.SelectedInstanceCallback; +import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; + +import java.util.List; +import java.util.Objects; +import java.util.concurrent.ThreadLocalRandom; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import reactor.core.publisher.Mono; + +public class IpPriorityLoadBalancer implements ReactorServiceInstanceLoadBalancer { + + private static final Logger logger = LoggerFactory.getLogger(IpPriorityLoadBalancer.class); + + private final String serviceId; + private final ObjectProvider serviceInstanceListSupplierProvider; + + public IpPriorityLoadBalancer( + String serviceId, + ObjectProvider serviceInstanceListSupplierProvider) { + this.serviceId = serviceId; + this.serviceInstanceListSupplierProvider = serviceInstanceListSupplierProvider; + } + + @Override + public Mono> choose(Request request) { + List clientIpList = + ((RequestDataContext) request.getContext()) + .getClientRequest() + .getHeaders() + .get("client-ip"); + String clientIp = CollectionUtils.isNotEmpty(clientIpList) ? clientIpList.get(0) : null; + ServiceInstanceListSupplier supplier = + serviceInstanceListSupplierProvider.getIfAvailable(NoopServiceInstanceListSupplier::new); + return supplier + .get(request) + .next() + .map(serviceInstances -> processInstanceResponse(supplier, serviceInstances, clientIp)); + } + + private Response processInstanceResponse( + ServiceInstanceListSupplier supplier, + List serviceInstances, + String clientIp) { + Response serviceInstanceResponse = + getInstanceResponse(serviceInstances, clientIp); + if (supplier instanceof SelectedInstanceCallback && serviceInstanceResponse.hasServer()) { + ((SelectedInstanceCallback) supplier) + .selectedServiceInstance(serviceInstanceResponse.getServer()); + } + return serviceInstanceResponse; + } + + private Response getInstanceResponse( + List instances, String clientIp) { + if (instances.isEmpty()) { + logger.warn("No servers available for service: " + serviceId); + return new EmptyResponse(); + } + if (StringUtils.isEmpty(clientIp)) { + return new DefaultResponse( + instances.get(ThreadLocalRandom.current().nextInt(instances.size()))); + } + String[] ipAndPort = clientIp.split(":"); + if (ipAndPort.length != 2) { + 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()))) { + return new DefaultResponse(instance); + } + } + return new DefaultResponse( + instances.get(ThreadLocalRandom.current().nextInt(instances.size()))); + } +} diff --git a/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/LinkisLoadBalancerClientConfiguration.java b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/LinkisLoadBalancerClientConfiguration.java new file mode 100644 index 0000000000..5c0f07a8d3 --- /dev/null +++ b/linkis-spring-cloud-services/linkis-service-gateway/linkis-spring-cloud-gateway/src/main/java/org/apache/linkis/gateway/springcloud/http/LinkisLoadBalancerClientConfiguration.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.linkis.gateway.springcloud.http; + +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer; +import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; +import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.core.env.Environment; + +public class LinkisLoadBalancerClientConfiguration { + @Bean + public ReactorLoadBalancer customLoadBalancer( + Environment environment, LoadBalancerClientFactory loadBalancerClientFactory) { + String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME); + return new IpPriorityLoadBalancer( + name, loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class)); + } +} From 0fd346b6eee8cc8aa49b093f346e52d8db195720 Mon Sep 17 00:00:00 2001 From: peacewong Date: Sat, 27 Apr 2024 22:31:16 +0800 Subject: [PATCH 10/13] Fix Rpc bug --- .../rpc/sender/SpringMVCRPCSender.scala | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala index 6fcb567081..55068f273c 100644 --- a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala +++ b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala @@ -18,8 +18,10 @@ package org.apache.linkis.rpc.sender import org.apache.linkis.common.ServiceInstance +import org.apache.linkis.common.utils.Logging import org.apache.linkis.rpc.{BaseRPCSender, RPCMessageEvent, RPCSpringBeanCache} import org.apache.linkis.rpc.interceptor.{RPCInterceptor, ServiceInstanceRPCInterceptorChain} +import org.apache.linkis.server.conf.ServerConfiguration import org.apache.commons.lang3.StringUtils @@ -27,7 +29,8 @@ import feign._ private[rpc] class SpringMVCRPCSender private[rpc] ( private[rpc] val serviceInstance: ServiceInstance -) extends BaseRPCSender(serviceInstance.getApplicationName) { +) extends BaseRPCSender(serviceInstance.getApplicationName) + with Logging { import SpringCloudFeignConfigurationCache._ @@ -41,17 +44,28 @@ private[rpc] class SpringMVCRPCSender private[rpc] ( if (serviceInstance != null && StringUtils.isNotBlank(serviceInstance.getInstance)) { builder.requestInterceptor(new RequestInterceptor() { def apply(template: RequestTemplate): Unit = { - // Fixed instance - template.target(s"http://${serviceInstance.getInstance}") + template.target( + s"http://${serviceInstance.getInstance}${ServerConfiguration.BDP_SERVER_RESTFUL_URI.getValue}" + ) } }) } super.doBuilder(builder) - builder - .contract(getContract) - .encoder(getEncoder) - .decoder(getDecoder) - .requestInterceptor(getRPCTicketIdRequestInterceptor) + if (StringUtils.isBlank(serviceInstance.getInstance)) { + builder + .contract(getContract) + .encoder(getEncoder) + .decoder(getDecoder) + .client(getClient) + .requestInterceptor(getRPCTicketIdRequestInterceptor) + } else { + builder + .contract(getContract) + .encoder(getEncoder) + .decoder(getDecoder) + .requestInterceptor(getRPCTicketIdRequestInterceptor) + } + } /** From 545f139d73f4b04ad0498807cd5d4da3d886f3ab Mon Sep 17 00:00:00 2001 From: peacewong Date: Thu, 9 May 2024 22:30:59 +0800 Subject: [PATCH 11/13] Support automatic retry for important RPC requests --- .../protocol/AbstractRetryableProtocol.java | 6 +- .../linkis/protocol/engine/EngineInfo.java | 47 ----- .../protocol/IRServiceGroupProtocol.scala | 27 --- .../linkis/protocol/RetryableProtocol.scala | 6 +- .../callback/LogCallbackProtocol.scala | 24 --- .../protocol/engine/EngineCallback.scala | 35 ---- .../engine/EngineStateTransitionRequest.scala | 27 --- .../protocol/engine/RequestEngineStatus.scala | 32 --- .../engine/RequestUserEngineKill.scala | 34 ---- .../linkis/protocol/utils/ProtocolUtils.scala | 44 ----- .../engine/RequestEngineStatusTest.scala | 44 ----- .../engine/ResponseUserEngineKillTest.scala | 35 ---- .../protocol/utils/ProtocolUtilsTest.scala | 45 ----- .../linkis/rpc/conf/CacheManualRefresher.java | 22 --- .../linkis/rpc/conf/DynamicFeignClient.java | 126 ------------ .../EurekaClientCacheManualRefresher.java | 118 ------------ .../rpc/conf/FeignRequestInterceptor.java | 58 ------ .../conf/NacosClientCacheManualRefresher.java | 33 ---- .../linkis/rpc/constant/RpcConstant.java | 4 - ...LinkisLoadBalancerClientConfiguration.java | 33 ---- .../ServiceInstancePriorityLoadBalancer.java | 182 ------------------ .../common/RetryableRPCInterceptor.scala | 10 - .../rpc/sender/SpringMVCRPCSender.scala | 5 + .../common/protocol/job/JobReqProcotol.scala | 3 +- .../common/protocol/task/RequestTask.scala | 3 +- .../protocol/task/ResponseEngineConnPid.scala | 3 +- .../protocol/task/ResponseTaskExecute.scala | 7 +- .../service/TaskExecutionServiceImpl.scala | 3 +- .../resource/EngineResourceRequest.scala | 2 +- .../http/GatewayAuthorizationFilter.java | 6 +- .../http/IpPriorityLoadBalancer.java | 4 +- 31 files changed, 28 insertions(+), 1000 deletions(-) delete mode 100644 linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/engine/EngineInfo.java delete mode 100644 linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/IRServiceGroupProtocol.scala delete mode 100644 linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/callback/LogCallbackProtocol.scala delete mode 100644 linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/EngineCallback.scala delete mode 100644 linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/EngineStateTransitionRequest.scala delete mode 100644 linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/RequestEngineStatus.scala delete mode 100644 linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/RequestUserEngineKill.scala delete mode 100644 linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/utils/ProtocolUtils.scala delete mode 100644 linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/engine/RequestEngineStatusTest.scala delete mode 100644 linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/engine/ResponseUserEngineKillTest.scala delete mode 100644 linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/utils/ProtocolUtilsTest.scala delete mode 100644 linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/CacheManualRefresher.java delete mode 100644 linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/DynamicFeignClient.java delete mode 100644 linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/EurekaClientCacheManualRefresher.java delete mode 100644 linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java delete mode 100644 linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java delete mode 100644 linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java delete mode 100644 linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java diff --git a/linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/AbstractRetryableProtocol.java b/linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/AbstractRetryableProtocol.java index 3dfd166846..aa7ddece50 100644 --- a/linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/AbstractRetryableProtocol.java +++ b/linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/AbstractRetryableProtocol.java @@ -21,7 +21,7 @@ public class AbstractRetryableProtocol implements RetryableProtocol { @Override public long maxPeriod() { - return 3000L; + return 30000L; } @Override @@ -31,11 +31,11 @@ public Class[] retryExceptions() { @Override public int retryNum() { - return 2; + return 5; } @Override public long period() { - return 1000L; + return 10000L; } } diff --git a/linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/engine/EngineInfo.java b/linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/engine/EngineInfo.java deleted file mode 100644 index 0504ee2113..0000000000 --- a/linkis-commons/linkis-protocol/src/main/java/org/apache/linkis/protocol/engine/EngineInfo.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.engine; - -public class EngineInfo { - - private Long id; - private EngineState engineState; - - public EngineInfo() {} - - public EngineInfo(Long id, EngineState state) { - this.id = id; - this.engineState = state; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public EngineState getEngineState() { - return engineState; - } - - public void setEngineState(EngineState engineState) { - this.engineState = engineState; - } -} diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/IRServiceGroupProtocol.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/IRServiceGroupProtocol.scala deleted file mode 100644 index 675dc0c830..0000000000 --- a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/IRServiceGroupProtocol.scala +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol - -trait IRServiceGroupProtocol extends IRProtocol with InstanceProtocol { - val userWithCreator: UserWithCreator - - def user: String = userWithCreator.user - def creator: String = userWithCreator.creator -} - -case class UserWithCreator(user: String, creator: String) diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/RetryableProtocol.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/RetryableProtocol.scala index 51509d6883..6ebee7d0e2 100644 --- a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/RetryableProtocol.scala +++ b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/RetryableProtocol.scala @@ -18,8 +18,8 @@ package org.apache.linkis.protocol trait RetryableProtocol extends Protocol { - def retryNum: Int = 2 - def period: Long = 1000L - def maxPeriod: Long = 3000L + def retryNum: Int = 5 + def period: Long = 10000L + def maxPeriod: Long = 30000L def retryExceptions: Array[Class[_ <: Throwable]] = Array.empty[Class[_ <: Throwable]] } diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/callback/LogCallbackProtocol.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/callback/LogCallbackProtocol.scala deleted file mode 100644 index 0109472a90..0000000000 --- a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/callback/LogCallbackProtocol.scala +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.callback - -import org.apache.linkis.protocol.message.RequestProtocol - -case class YarnAPPIdCallbackProtocol(nodeId: String, applicationId: String) extends RequestProtocol - -case class YarnInfoCallbackProtocol(nodeId: String, uri: String) extends RequestProtocol diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/EngineCallback.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/EngineCallback.scala deleted file mode 100644 index 8856d3a927..0000000000 --- a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/EngineCallback.scala +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.engine - -object EngineCallback { - private val DWC_APPLICATION_NAME = "dwc.application.name" - private val DWC_INSTANCE = "dwc.application.instance" - - def mapToEngineCallback(options: Map[String, String]): EngineCallback = - EngineCallback(options(DWC_APPLICATION_NAME), options(DWC_INSTANCE)) - - def callbackToMap(engineCallback: EngineCallback): Map[String, String] = - Map( - DWC_APPLICATION_NAME -> engineCallback.applicationName, - DWC_INSTANCE -> engineCallback.instance - ) - -} - -case class EngineCallback(applicationName: String, instance: String) diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/EngineStateTransitionRequest.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/EngineStateTransitionRequest.scala deleted file mode 100644 index 9137001c14..0000000000 --- a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/EngineStateTransitionRequest.scala +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.engine - -case class EngineStateTransitionRequest(engineInstance: String, state: String) - -case class EngineStateTransitionResponse( - engineInstance: String, - state: String, - result: Boolean, - message: String -) diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/RequestEngineStatus.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/RequestEngineStatus.scala deleted file mode 100644 index a4672aa4e5..0000000000 --- a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/RequestEngineStatus.scala +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.engine - -import org.apache.linkis.protocol.RetryableProtocol -import org.apache.linkis.protocol.message.RequestProtocol - -case class RequestEngineStatus(messageType: Int) extends RetryableProtocol with RequestProtocol - -object RequestEngineStatus { - val Status_Only = 1 - val Status_Overload = 2 - val Status_Concurrent = 3 - val Status_Overload_Concurrent = 4 - val Status_BasicInfo = 5 - val ALL = 6 -} diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/RequestUserEngineKill.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/RequestUserEngineKill.scala deleted file mode 100644 index beb7987b01..0000000000 --- a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/engine/RequestUserEngineKill.scala +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.engine - -import org.apache.linkis.protocol.message.RequestProtocol - -case class RequestUserEngineKill( - ticketId: String, - creator: String, - user: String, - properties: Map[String, String] -) extends RequestProtocol - -case class ResponseUserEngineKill(ticketId: String, status: String, message: String) - -object ResponseUserEngineKill { - val Success = "Success" - val Error = "Error" -} diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/utils/ProtocolUtils.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/utils/ProtocolUtils.scala deleted file mode 100644 index 1bb0791be3..0000000000 --- a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/utils/ProtocolUtils.scala +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.utils - -import org.apache.linkis.common.conf.CommonVars - -object ProtocolUtils { - - val SERVICE_SUFFIX = CommonVars("wds.linkis.service.suffix", "engineManager,entrance,engine") - val suffixs = SERVICE_SUFFIX.getValue.split(",") - - /** - * Pass in moduleName to return the corresponding appName 传入moduleName返回对应的appName - * @param moduleName - * module's name - * @return - * application's name - */ - def getAppName(moduleName: String): Option[String] = { - val moduleNameLower = moduleName.toLowerCase() - for (suffix <- suffixs) { - if (moduleNameLower.contains(suffix.toLowerCase())) { - return Some(moduleNameLower.replace(suffix.toLowerCase(), "")) - } - } - None - } - -} diff --git a/linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/engine/RequestEngineStatusTest.scala b/linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/engine/RequestEngineStatusTest.scala deleted file mode 100644 index d9fc07b6c0..0000000000 --- a/linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/engine/RequestEngineStatusTest.scala +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.engine - -import org.junit.jupiter.api.{Assertions, DisplayName, Test} - -class RequestEngineStatusTest { - - @Test - @DisplayName("constTest") - def constTest(): Unit = { - - val statusOnly = RequestEngineStatus.Status_Only - val statusOverload = RequestEngineStatus.Status_Overload - val statusConcurrent = RequestEngineStatus.Status_Concurrent - val statusOverloadConcurrent = RequestEngineStatus.Status_Overload_Concurrent - val statusBasicInfo = RequestEngineStatus.Status_BasicInfo - val all = RequestEngineStatus.ALL - - Assertions.assertTrue(1 == statusOnly) - Assertions.assertTrue(2 == statusOverload) - Assertions.assertTrue(3 == statusConcurrent) - Assertions.assertTrue(4 == statusOverloadConcurrent) - Assertions.assertTrue(5 == statusBasicInfo) - Assertions.assertTrue(6 == all) - - } - -} diff --git a/linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/engine/ResponseUserEngineKillTest.scala b/linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/engine/ResponseUserEngineKillTest.scala deleted file mode 100644 index dbf3f5e3b5..0000000000 --- a/linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/engine/ResponseUserEngineKillTest.scala +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.engine - -import org.junit.jupiter.api.{Assertions, DisplayName, Test} - -class ResponseUserEngineKillTest { - - @Test - @DisplayName("constTest") - def constTest(): Unit = { - - val success = ResponseUserEngineKill.Success - val error = ResponseUserEngineKill.Error - - Assertions.assertEquals("Success", success) - Assertions.assertEquals("Error", error) - } - -} diff --git a/linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/utils/ProtocolUtilsTest.scala b/linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/utils/ProtocolUtilsTest.scala deleted file mode 100644 index 2435f51497..0000000000 --- a/linkis-commons/linkis-protocol/src/test/scala/org/apache/linkis/protocol/utils/ProtocolUtilsTest.scala +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.protocol.utils - -import org.junit.jupiter.api.{Assertions, DisplayName, Test} - -class ProtocolUtilsTest { - - @Test - @DisplayName("constTest") - def constTest(): Unit = { - - val serviceSuffix = ProtocolUtils.SERVICE_SUFFIX.getValue - val suffixs = ProtocolUtils.suffixs - - Assertions.assertNotNull(serviceSuffix) - Assertions.assertTrue(suffixs.length == 3) - } - - @Test - @DisplayName("getAppNameTest") - def getAppNameTest(): Unit = { - - val modeleName = "engineManager" - val appNameOption = ProtocolUtils.getAppName(modeleName) - Assertions.assertNotNull(appNameOption.get) - - } - -} diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/CacheManualRefresher.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/CacheManualRefresher.java deleted file mode 100644 index dbdf52a1fc..0000000000 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/CacheManualRefresher.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.rpc.conf; - -public interface CacheManualRefresher { - void refresh(); -} diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/DynamicFeignClient.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/DynamicFeignClient.java deleted file mode 100644 index 89eb6083b9..0000000000 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/DynamicFeignClient.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.rpc.conf; - -import org.apache.linkis.DataWorkCloudApplication; - -import org.apache.commons.lang3.StringUtils; - -import org.springframework.cloud.openfeign.FeignClientBuilder; -import org.springframework.cloud.openfeign.FeignClientFactoryBean; -import org.springframework.stereotype.Component; - -import java.util.concurrent.ConcurrentHashMap; - -@Component -public class DynamicFeignClient { - - private FeignClientBuilder feignClientBuilder; - - private final ConcurrentHashMap CACHE_BEAN = new ConcurrentHashMap(); - - public DynamicFeignClient() { - this.feignClientBuilder = - new FeignClientBuilder(DataWorkCloudApplication.getApplicationContext()); - } - - public T getFeignClient(final Class type, final String serviceName) { - return getFeignClient(type, serviceName, null); - } - - public T getFeignClient( - final Class type, final Class fallbackFactory, final String serviceName) { - return getFeignClient(type, fallbackFactory, serviceName, null); - } - - public T getFeignClient( - final Class type, - final FeignClientFactoryBean clientFactoryBean, - final String serviceName) { - return getFeignClient(type, clientFactoryBean, serviceName, null); - } - - public T getFeignClient(final Class type, String serviceName, final String serviceUrl) { - String k = serviceName; - if (StringUtils.isNotBlank(serviceUrl)) { - k = serviceUrl; - } - return CACHE_BEAN.computeIfAbsent( - k, - (t) -> { - FeignClientBuilder.Builder builder = - this.feignClientBuilder.forType(type, serviceName); - if (StringUtils.isNotBlank(serviceUrl)) { - builder.url(serviceUrl); - } - return builder.build(); - }); - } - - public T getFeignClient( - final Class type, - final Class fallbackFactory, - final String serviceName, - final String serviceUrl) { - String k = serviceName; - if (StringUtils.isNotBlank(serviceUrl)) { - k = serviceUrl; - } - return CACHE_BEAN.computeIfAbsent( - k, - (t) -> { - FeignClientFactoryBean feignClientFactoryBean = new FeignClientFactoryBean(); - feignClientFactoryBean.setFallbackFactory(fallbackFactory); - FeignClientBuilder.Builder builder = - this.feignClientBuilder.forType(type, feignClientFactoryBean, serviceName); - if (StringUtils.isNotBlank(serviceUrl)) { - builder.url(serviceUrl); - } - return builder.build(); - }); - } - - public T getFeignClient( - final Class type, - final FeignClientFactoryBean clientFactoryBean, - final String serviceName, - final String serviceUrl) { - String k = serviceName; - if (StringUtils.isNotBlank(serviceUrl)) { - k = serviceUrl; - } - return CACHE_BEAN.computeIfAbsent( - k, - (t) -> { - FeignClientBuilder.Builder builder = - this.feignClientBuilder.forType(type, clientFactoryBean, serviceName); - if (StringUtils.isNotBlank(serviceUrl)) { - builder.url(serviceUrl); - } - return builder.build(); - }); - } - - private T getFromCache(final String serviceName, final String serviceUrl) { - if (StringUtils.isNotEmpty(serviceUrl)) { - return CACHE_BEAN.get(serviceUrl); - } else { - return CACHE_BEAN.get(serviceName); - } - } -} diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/EurekaClientCacheManualRefresher.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/EurekaClientCacheManualRefresher.java deleted file mode 100644 index 7394698672..0000000000 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/EurekaClientCacheManualRefresher.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.rpc.conf; - -import org.apache.commons.lang3.exception.ExceptionUtils; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.stereotype.Component; -import org.springframework.util.ReflectionUtils; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.time.Duration; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicBoolean; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@Component -@ConditionalOnClass(name = "org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration") -public class EurekaClientCacheManualRefresher implements CacheManualRefresher { - private static final Logger logger = - LoggerFactory.getLogger(EurekaClientCacheManualRefresher.class); - private final AtomicBoolean isRefreshing = new AtomicBoolean(false); - private final ExecutorService refreshExecutor = Executors.newSingleThreadExecutor(); - private final String cacheRefreshTaskField = "cacheRefreshTask"; - private Object cacheRefreshTask; - - private long lastRefreshMillis = 0; - private final Duration refreshIntervalDuration = Duration.ofSeconds(3); - - @Autowired private BeanFactory beanFactory; - - public void refreshOnExceptions(Exception e, List> clazzs) { - if (null == clazzs || clazzs.size() == 0) { - throw new IllegalArgumentException(); - } - - if (clazzs.stream() - .anyMatch( - clazz -> clazz.isInstance(e) || clazz.isInstance(ExceptionUtils.getRootCause(e)))) { - refresh(); - } - } - - public void refresh() { - if (isRefreshing.compareAndSet(false, true)) { - refreshExecutor.execute( - () -> { - try { - if (System.currentTimeMillis() - <= lastRefreshMillis + refreshIntervalDuration.toMillis()) { - logger.warn( - "Not manually refresh eureka client cache as refresh interval was not exceeded:{}", - refreshIntervalDuration.getSeconds()); - return; - } - - String discoveryClientClassName = "com.netflix.discovery.DiscoveryClient"; - if (null == cacheRefreshTask) { - Class discoveryClientClass = Class.forName(discoveryClientClassName); - Field field = - ReflectionUtils.findField(discoveryClientClass, cacheRefreshTaskField); - if (null != field) { - ReflectionUtils.makeAccessible(field); - Object discoveryClient = beanFactory.getBean(discoveryClientClass); - cacheRefreshTask = ReflectionUtils.getField(field, discoveryClient); - } - } - - if (null == cacheRefreshTask) { - logger.error( - "Field ({}) not found in class '{}'", - cacheRefreshTaskField, - discoveryClientClassName); - return; - } - - lastRefreshMillis = System.currentTimeMillis(); - Class timedSupervisorTaskClass = - Class.forName("com.netflix.discovery.TimedSupervisorTask"); - Method method = timedSupervisorTaskClass.getDeclaredMethod("run"); - method.setAccessible(true); - method.invoke(cacheRefreshTask); - logger.info( - "Manually refresh eureka client cache completed(DiscoveryClient.cacheRefreshTask#run())"); - } catch (Exception e) { - logger.error("An exception occurred when manually refresh eureka client cache", e); - } finally { - isRefreshing.set(false); - } - }); - } else { - logger.warn( - "Not manually refresh eureka client cache as another thread is refreshing it already"); - } - } -} diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java deleted file mode 100644 index 26db20d769..0000000000 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/FeignRequestInterceptor.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.rpc.conf; - -import org.apache.linkis.rpc.constant.RpcConstant; -import org.apache.linkis.server.BDPJettyServerHelper; -import org.apache.linkis.server.Message; -import org.apache.linkis.server.security.SSOUtils$; -import org.apache.linkis.server.security.SecurityFilter$; - -import java.io.UnsupportedEncodingException; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -import scala.Tuple2; - -import feign.RequestInterceptor; -import feign.RequestTemplate; - -public class FeignRequestInterceptor implements RequestInterceptor { - - @Override - public void apply(RequestTemplate requestTemplate) { - Map> headers = new HashMap<>(requestTemplate.headers()); - headers.put( - RpcConstant.LINKIS_LOAD_BALANCER_TYPE, - Arrays.asList(RpcConstant.LINKIS_LOAD_BALANCER_TYPE_RPC)); - Tuple2 userTicketKV = - SSOUtils$.MODULE$.getUserTicketKV(SecurityFilter$.MODULE$.OTHER_SYSTEM_IGNORE_UM_USER()); - headers.put(userTicketKV._1, Arrays.asList(userTicketKV._2)); - try { - String body = - new String( - requestTemplate.body(), - org.apache.linkis.common.conf.Configuration.BDP_ENCODING().getValue()); - Message message = BDPJettyServerHelper.gson().fromJson(body, Message.class); - requestTemplate.headers(headers); - } catch (UnsupportedEncodingException e) { - } - } -} diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java deleted file mode 100644 index 34e2357541..0000000000 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/conf/NacosClientCacheManualRefresher.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.rpc.conf; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.stereotype.Component; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -@Component -@ConditionalOnClass(name = "com.alibaba.cloud.nacos.registry.NacosServiceRegistryAutoConfiguration") -public class NacosClientCacheManualRefresher implements CacheManualRefresher { - private static final Logger logger = - LoggerFactory.getLogger(NacosClientCacheManualRefresher.class); - - public void refresh() {} -} diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/constant/RpcConstant.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/constant/RpcConstant.java index 3d46661de2..9fd0b81104 100644 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/constant/RpcConstant.java +++ b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/constant/RpcConstant.java @@ -19,9 +19,5 @@ public class RpcConstant { - public static final String LINKIS_LOAD_BALANCER_TYPE = "LinkisLoadBalancerType"; - - public static final String LINKIS_LOAD_BALANCER_TYPE_RPC = "RPC"; - public static final String FIXED_INSTANCE = "client-ip"; } diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java deleted file mode 100644 index 6701c0acdc..0000000000 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/LinkisLoadBalancerClientConfiguration.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.rpc.loadbalancer; - -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer; -import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; -import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; -import org.springframework.core.env.Environment; - -public class LinkisLoadBalancerClientConfiguration { - public ReactorLoadBalancer customLoadBalancer( - Environment environment, LoadBalancerClientFactory loadBalancerClientFactory) { - String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME); - return new ServiceInstancePriorityLoadBalancer( - loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name); - } -} diff --git a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java b/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java deleted file mode 100644 index 3623cbccf5..0000000000 --- a/linkis-commons/linkis-rpc/src/main/java/org/apache/linkis/rpc/loadbalancer/ServiceInstancePriorityLoadBalancer.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.linkis.rpc.loadbalancer; - -import org.apache.linkis.rpc.conf.CacheManualRefresher; -import org.apache.linkis.rpc.conf.RPCConfiguration; -import org.apache.linkis.rpc.constant.RpcConstant; -import org.apache.linkis.rpc.errorcode.LinkisRpcErrorCodeSummary; -import org.apache.linkis.rpc.exception.NoInstanceExistsException; -import org.apache.linkis.rpc.sender.SpringCloudFeignConfigurationCache$; - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.client.loadbalancer.*; -import org.springframework.cloud.loadbalancer.core.NoopServiceInstanceListSupplier; -import org.springframework.cloud.loadbalancer.core.ReactorServiceInstanceLoadBalancer; -import org.springframework.cloud.loadbalancer.core.SelectedInstanceCallback; -import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; - -import java.text.MessageFormat; -import java.util.List; -import java.util.Objects; -import java.util.Random; -import java.util.concurrent.atomic.AtomicInteger; - -import reactor.core.publisher.Mono; - -public class ServiceInstancePriorityLoadBalancer implements ReactorServiceInstanceLoadBalancer { - - private static final Log log = LogFactory.getLog(ServiceInstancePriorityLoadBalancer.class); - - @Autowired private CacheManualRefresher cacheManualRefresher; - - private final String serviceId; - - final AtomicInteger position; - private final ObjectProvider serviceInstanceListSupplierProvider; - - private final Long maxWaitTime = - RPCConfiguration.RPC_SERVICE_REFRESH_MAX_WAIT_TIME().getValue().toLong(); - - public ServiceInstancePriorityLoadBalancer( - ObjectProvider serviceInstanceListSupplierProvider, - String serviceId) { - this(serviceInstanceListSupplierProvider, serviceId, (new Random()).nextInt(1000)); - } - - public ServiceInstancePriorityLoadBalancer( - ObjectProvider serviceInstanceListSupplierProvider, - String serviceId, - int seedPosition) { - this.serviceId = serviceId; - this.serviceInstanceListSupplierProvider = serviceInstanceListSupplierProvider; - this.position = new AtomicInteger(seedPosition); - } - - @Override - public Mono> choose(Request request) { - List clientIpList = - ((RequestDataContext) request.getContext()) - .getClientRequest() - .getHeaders() - .get(RpcConstant.FIXED_INSTANCE); - String clientIp = CollectionUtils.isNotEmpty(clientIpList) ? clientIpList.get(0) : null; - ServiceInstanceListSupplier supplier = - serviceInstanceListSupplierProvider.getIfAvailable(NoopServiceInstanceListSupplier::new); - return supplier - .get(request) - .next() - .map( - serviceInstances -> - processInstanceResponse(request, supplier, serviceInstances, clientIp)); - } - - private Response processInstanceResponse( - Request request, - ServiceInstanceListSupplier supplier, - List serviceInstances, - String clientIp) { - Response serviceInstanceResponse = - getInstanceResponse(serviceInstances, clientIp); - Long endTime = System.currentTimeMillis() + maxWaitTime; - - List linkisLoadBalancerTypeList = - ((RequestDataContext) request.getContext()) - .getClientRequest() - .getHeaders() - .get(RpcConstant.LINKIS_LOAD_BALANCER_TYPE); - String linkisLoadBalancerType = - CollectionUtils.isNotEmpty(linkisLoadBalancerTypeList) - ? linkisLoadBalancerTypeList.get(0) - : null; - - while (null == serviceInstanceResponse - && StringUtils.isNotBlank(clientIp) - && isRPC(linkisLoadBalancerType) - && System.currentTimeMillis() < endTime) { - cacheManualRefresher.refresh(); - List instances = - SpringCloudFeignConfigurationCache$.MODULE$.discoveryClient().getInstances(serviceId); - serviceInstanceResponse = getInstanceResponse(instances, clientIp); - if (null == serviceInstanceResponse) { - try { - Thread.sleep(5000L); - } catch (InterruptedException e) { - - } - } - } - - if (null == serviceInstanceResponse && StringUtils.isNotBlank(clientIp)) { - throw new NoInstanceExistsException( - LinkisRpcErrorCodeSummary.INSTANCE_NOT_FOUND_ERROR.getErrorCode(), - MessageFormat.format( - LinkisRpcErrorCodeSummary.INSTANCE_NOT_FOUND_ERROR.getErrorDesc(), clientIp)); - } - - if (supplier instanceof SelectedInstanceCallback && serviceInstanceResponse.hasServer()) { - ((SelectedInstanceCallback) supplier) - .selectedServiceInstance(serviceInstanceResponse.getServer()); - } - return serviceInstanceResponse; - } - - private boolean isRPC(String linkisLoadBalancerType) { - return StringUtils.isNotBlank(linkisLoadBalancerType) - && linkisLoadBalancerType.equalsIgnoreCase(RpcConstant.LINKIS_LOAD_BALANCER_TYPE_RPC); - } - - private Response getInstanceResponse( - List instances, String clientIp) { - if (instances.isEmpty()) { - log.warn("No servers available for service: " + serviceId); - return null; - } - int pos = this.position.incrementAndGet() & Integer.MAX_VALUE; - - if (StringUtils.isBlank(clientIp)) { - return new DefaultResponse(instances.get(pos % instances.size())); - } - String[] ipAndPort = clientIp.split(":"); - if (ipAndPort.length != 2) { - throw new NoInstanceExistsException( - LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorCode(), - MessageFormat.format(LinkisRpcErrorCodeSummary.INSTANCE_ERROR.getErrorDesc(), clientIp)); - } - ServiceInstance chooseInstance = null; - for (ServiceInstance instance : instances) { - if (Objects.equals(ipAndPort[0], instance.getHost()) - && Objects.equals(ipAndPort[1], String.valueOf(instance.getPort()))) { - chooseInstance = instance; - break; - } - } - if (null == chooseInstance) { - return null; - } else { - return new DefaultResponse(chooseInstance); - } - } -} diff --git a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/interceptor/common/RetryableRPCInterceptor.scala b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/interceptor/common/RetryableRPCInterceptor.scala index 4faeaa180e..d835eef328 100644 --- a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/interceptor/common/RetryableRPCInterceptor.scala +++ b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/interceptor/common/RetryableRPCInterceptor.scala @@ -42,25 +42,15 @@ import feign.RetryableException class RetryableRPCInterceptor extends RPCInterceptor { override val order: Int = 20 -// private val commonRetryHandler = new RPCRetryHandler -// commonRetryHandler.setRetryInfo(new RetryableProtocol{}) -// -// private def isCommonRetryHandler(retry: RetryableProtocol): Boolean = retry.maxPeriod == commonRetryHandler.getRetryMaxPeriod && -// retry.period == commonRetryHandler.getRetryPeriod && retry.retryNum == commonRetryHandler.getRetryNum && -// (retry.retryExceptions.isEmpty || commonRetryHandler.getRetryExceptions.containsSlice(retry.retryExceptions)) - override def intercept( interceptorExchange: RPCInterceptorExchange, chain: RPCInterceptorChain ): Any = interceptorExchange.getProtocol match { case retry: RetryableProtocol => val retryName = retry.getClass.getSimpleName -// if(isCommonRetryHandler(retry)) commonRetryHandler.retry(chain.handle(interceptorExchange), retryName) -// else { val retryHandler = new RPCRetryHandler retryHandler.setRetryInfo(retry, chain) retryHandler.retry(chain.handle(interceptorExchange), retryName) -// } case _ => chain.handle(interceptorExchange) } diff --git a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala index 55068f273c..ae1070865a 100644 --- a/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala +++ b/linkis-commons/linkis-rpc/src/main/scala/org/apache/linkis/rpc/sender/SpringMVCRPCSender.scala @@ -40,6 +40,11 @@ private[rpc] class SpringMVCRPCSender private[rpc] ( override protected def createRPCInterceptorChain() = new ServiceInstanceRPCInterceptorChain(0, getRPCInterceptors, serviceInstance) + /** + * If it's a random call, you don't need to set target specify instance,need to specify target and + * do not set client setting + * @param builder + */ override protected def doBuilder(builder: Feign.Builder): Unit = { if (serviceInstance != null && StringUtils.isNotBlank(serviceInstance.getInstance)) { builder.requestInterceptor(new RequestInterceptor() { diff --git a/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/job/JobReqProcotol.scala b/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/job/JobReqProcotol.scala index df197ddb2c..829a967aab 100644 --- a/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/job/JobReqProcotol.scala +++ b/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/job/JobReqProcotol.scala @@ -18,6 +18,7 @@ package org.apache.linkis.governance.common.protocol.job import org.apache.linkis.governance.common.entity.job.JobRequest +import org.apache.linkis.protocol.RetryableProtocol import org.apache.linkis.protocol.message.RequestProtocol import java.util @@ -25,7 +26,7 @@ import java.util.Date import scala.beans.BeanProperty -trait JobReq extends RequestProtocol +trait JobReq extends RequestProtocol with RetryableProtocol case class JobReqInsert(jobReq: JobRequest) extends JobReq diff --git a/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/RequestTask.scala b/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/RequestTask.scala index 4d0b8952ca..17c01fcfc2 100644 --- a/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/RequestTask.scala +++ b/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/RequestTask.scala @@ -18,6 +18,7 @@ package org.apache.linkis.governance.common.protocol.task import org.apache.linkis.manager.label.entity.Label +import org.apache.linkis.protocol.RetryableProtocol import org.apache.linkis.protocol.message.RequestProtocol import java.util @@ -91,7 +92,7 @@ trait TaskState extends RequestProtocol {} case class RequestTaskPause(execId: String) extends TaskState case class RequestTaskResume(execId: String) extends TaskState -case class RequestTaskKill(execId: String) extends TaskState +case class RequestTaskKill(execId: String) extends TaskState with RetryableProtocol /** * The status of requesting job execution, mainly used for:
diff --git a/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/ResponseEngineConnPid.scala b/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/ResponseEngineConnPid.scala index 971bdf247b..ef1355d580 100644 --- a/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/ResponseEngineConnPid.scala +++ b/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/ResponseEngineConnPid.scala @@ -25,5 +25,4 @@ import org.apache.linkis.protocol.message.RequestProtocol * @param pid */ case class ResponseEngineConnPid(serviceInstance: ServiceInstance, pid: String, ticketId: String) - extends RetryableProtocol - with RequestProtocol + extends RequestProtocol diff --git a/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/ResponseTaskExecute.scala b/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/ResponseTaskExecute.scala index b136c61099..a4a7837da0 100644 --- a/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/ResponseTaskExecute.scala +++ b/linkis-computation-governance/linkis-computation-governance-common/src/main/scala/org/apache/linkis/governance/common/protocol/task/ResponseTaskExecute.scala @@ -30,8 +30,7 @@ case class ResponseTaskProgress( execId: String, progress: Float, progressInfo: Array[JobProgressInfo] -) extends RetryableProtocol - with RequestProtocol +) extends RequestProtocol case class ResponseEngineLock(lock: String) @@ -67,9 +66,7 @@ case class ResponseEngineStatus( engineInfo: ResponseEngineInfo ) -case class ResponseTaskLog(execId: String, log: String) - extends RetryableProtocol - with RequestProtocol +case class ResponseTaskLog(execId: String, log: String) extends RequestProtocol case class ResponseTaskError(execId: String, errorMsg: String) extends RetryableProtocol diff --git a/linkis-computation-governance/linkis-engineconn/linkis-computation-engineconn/src/main/scala/org/apache/linkis/engineconn/computation/executor/service/TaskExecutionServiceImpl.scala b/linkis-computation-governance/linkis-engineconn/linkis-computation-engineconn/src/main/scala/org/apache/linkis/engineconn/computation/executor/service/TaskExecutionServiceImpl.scala index 6b4fc64fe6..9dba95ef66 100644 --- a/linkis-computation-governance/linkis-engineconn/linkis-computation-engineconn/src/main/scala/org/apache/linkis/engineconn/computation/executor/service/TaskExecutionServiceImpl.scala +++ b/linkis-computation-governance/linkis-engineconn/linkis-computation-engineconn/src/main/scala/org/apache/linkis/engineconn/computation/executor/service/TaskExecutionServiceImpl.scala @@ -154,8 +154,7 @@ class TaskExecutionServiceImpl sender = Sender.getSender(task.getCallbackServiceInstance()) sender.send(msg) } else { - // todo - logger.debug("SendtoEntrance error, cannot find entrance instance.") + logger.warn("SendtoEntrance error, cannot find entrance instance.") } } { t => val errorMsg = s"SendToEntrance error. $msg" + t.getCause diff --git a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/scala/org/apache/linkis/manager/engineplugin/common/resource/EngineResourceRequest.scala b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/scala/org/apache/linkis/manager/engineplugin/common/resource/EngineResourceRequest.scala index 3b3005fee6..8bcc79b410 100644 --- a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/scala/org/apache/linkis/manager/engineplugin/common/resource/EngineResourceRequest.scala +++ b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/scala/org/apache/linkis/manager/engineplugin/common/resource/EngineResourceRequest.scala @@ -22,7 +22,7 @@ import org.apache.linkis.protocol.message.RequestProtocol import java.util -trait EngineResourceRequest extends RequestProtocol { +trait EngineResourceRequest { val user: String val labels: util.List[Label[_]] val properties: util.Map[String, String] 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 79371f8539..c09aed0e8a 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,6 +27,7 @@ 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; @@ -131,7 +132,10 @@ private Route getRealRoute( } String uri = scheme + serviceInstance.getApplicationName(); if (StringUtils.isNotBlank(serviceInstance.getInstance())) { - exchange.getRequest().mutate().header("FIXED_INSTANCE", serviceInstance.getInstance()); + exchange + .getRequest() + .mutate() + .header(RpcConstant.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 6300cbce5b..206b31ccf5 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,6 +17,8 @@ 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; @@ -56,7 +58,7 @@ public Mono> choose(Request request) { ((RequestDataContext) request.getContext()) .getClientRequest() .getHeaders() - .get("client-ip"); + .get(RpcConstant.FIXED_INSTANCE); String clientIp = CollectionUtils.isNotEmpty(clientIpList) ? clientIpList.get(0) : null; ServiceInstanceListSupplier supplier = serviceInstanceListSupplierProvider.getIfAvailable(NoopServiceInstanceListSupplier::new); From b8db3eaafd6ceaa3212eddfded5288181ddbf75b Mon Sep 17 00:00:00 2001 From: peacewong Date: Thu, 9 May 2024 22:48:23 +0800 Subject: [PATCH 12/13] Fix build issue --- .../linkis/protocol/UserWithCreator.scala | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/UserWithCreator.scala diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/UserWithCreator.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/UserWithCreator.scala new file mode 100644 index 0000000000..f3b5e18439 --- /dev/null +++ b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/UserWithCreator.scala @@ -0,0 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.linkis.protocol + +case class UserWithCreator(user: String, creator: String) \ No newline at end of file From 88466c9516a81363a72cf7abdebc623447c3785c Mon Sep 17 00:00:00 2001 From: peacewong Date: Fri, 10 May 2024 14:34:31 +0800 Subject: [PATCH 13/13] code format --- .../main/scala/org/apache/linkis/protocol/UserWithCreator.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/UserWithCreator.scala b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/UserWithCreator.scala index f3b5e18439..cebaf3b9b2 100644 --- a/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/UserWithCreator.scala +++ b/linkis-commons/linkis-protocol/src/main/scala/org/apache/linkis/protocol/UserWithCreator.scala @@ -17,4 +17,4 @@ package org.apache.linkis.protocol -case class UserWithCreator(user: String, creator: String) \ No newline at end of file +case class UserWithCreator(user: String, creator: String)