From 77a4b86cb4d3279de78ae33547430e2031c40b44 Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Wed, 4 Jun 2025 12:11:41 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=EF=BC=88=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PublishController.java | 75 ------------------- 1 file changed, 75 deletions(-) delete mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java deleted file mode 100644 index 5cdf455..0000000 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.bipt.intelligentapplicationorchestrationservice.controller; - -import com.bipt.intelligentapplicationorchestrationservice.pojo.*; -import com.bipt.intelligentapplicationorchestrationservice.service.PublishService; -import com.bipt.intelligentapplicationorchestrationservice.util.NacosServiceUtil; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@Tag(name ="服务发布相关接口") -@RestController -@RequestMapping("/publish") -@Slf4j -public class PublishController { - @Autowired - private PublishService publishService; - - @Autowired - private RedisTemplate redisTemplate; - @Autowired - private NacosServiceUtil nacosServiceUtil; - - @PostMapping - @Operation(summary ="新增发布请求") - @Transactional - public OptResult> save(@RequestBody ServicePublishDTO servicePublishDTO) { - log.info("模型发布请求:{}", servicePublishDTO); - publishService.save(servicePublishDTO); - //todo 调用模型部署 - - // 获取前端传来的IP字符串 - String ipListStr = servicePublishDTO.getIp(); - if (ipListStr == null || ipListStr.trim().isEmpty()) { - log.warn("IP列表为空,不进行Nacos注册"); - return OptResult.success(); - } - - try { - // 使用逗号分割IP字符串 - String[] ipArray = ipListStr.split(","); - // 循环注册每个IP到Nacos - for (String ip : ipArray) { - String trimmedIp = ip.trim(); - if (!trimmedIp.isEmpty()) { - nacosServiceUtil.registerService( - servicePublishDTO.getModelId().toString(), - trimmedIp, - 8080, - servicePublishDTO.getApiUrl() - ); - log.info("Nacos服务注册成功: {}", trimmedIp); - } - } - } catch (Exception e) { - log.error("Nacos服务注册失败", e); - return OptResult.error("Nacos服务注册失败"); // 根据业务需求返回错误 - } - - - return OptResult.success(); - } - - - - - - - -} -- 2.25.1 From 5dd1cfcf9e44bbe657d60e51b3681aebe49bd649 Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Mon, 26 May 2025 21:49:13 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PublishController.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java new file mode 100644 index 0000000..5cdf455 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java @@ -0,0 +1,75 @@ +package com.bipt.intelligentapplicationorchestrationservice.controller; + +import com.bipt.intelligentapplicationorchestrationservice.pojo.*; +import com.bipt.intelligentapplicationorchestrationservice.service.PublishService; +import com.bipt.intelligentapplicationorchestrationservice.util.NacosServiceUtil; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Tag(name ="服务发布相关接口") +@RestController +@RequestMapping("/publish") +@Slf4j +public class PublishController { + @Autowired + private PublishService publishService; + + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private NacosServiceUtil nacosServiceUtil; + + @PostMapping + @Operation(summary ="新增发布请求") + @Transactional + public OptResult> save(@RequestBody ServicePublishDTO servicePublishDTO) { + log.info("模型发布请求:{}", servicePublishDTO); + publishService.save(servicePublishDTO); + //todo 调用模型部署 + + // 获取前端传来的IP字符串 + String ipListStr = servicePublishDTO.getIp(); + if (ipListStr == null || ipListStr.trim().isEmpty()) { + log.warn("IP列表为空,不进行Nacos注册"); + return OptResult.success(); + } + + try { + // 使用逗号分割IP字符串 + String[] ipArray = ipListStr.split(","); + // 循环注册每个IP到Nacos + for (String ip : ipArray) { + String trimmedIp = ip.trim(); + if (!trimmedIp.isEmpty()) { + nacosServiceUtil.registerService( + servicePublishDTO.getModelId().toString(), + trimmedIp, + 8080, + servicePublishDTO.getApiUrl() + ); + log.info("Nacos服务注册成功: {}", trimmedIp); + } + } + } catch (Exception e) { + log.error("Nacos服务注册失败", e); + return OptResult.error("Nacos服务注册失败"); // 根据业务需求返回错误 + } + + + return OptResult.success(); + } + + + + + + + +} -- 2.25.1 From 0619c7d1841b43abb422c8c3968366dafcfee838 Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Mon, 26 May 2025 22:16:15 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=85=A8=E5=B1=80=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.properties | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 70828d3..0115fcb 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -31,4 +31,9 @@ spring.cloud.gateway.routes[0].predicates[0]=Path=/request #SQL 语句日志输出配置 logging.level.com.bipt.intelligentapplicationorchestrationservice.mapper=DEBUG -mybatis.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl \ No newline at end of file +mybatis.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl + +# 服务路由配置 +spring.cloud.gateway.routes[0].id=request-service-route +spring.cloud.gateway.routes[0].uri=lb://intelligent-application-orchestration-service +spring.cloud.gateway.routes[0].predicates[0]=Path=/request -- 2.25.1 From 49851384c8f4781138f8f6fd5ffcfbd908a64c7f Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Tue, 3 Jun 2025 21:52:51 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=EF=BC=88=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 3 ++- .../controller/ServiceAPIController.java | 5 ++++- .../filter/ApiRequestGlobalFilter.java | 6 +----- .../pojo/ServicePublishDTO.java | 2 ++ src/main/resources/application.properties | 2 ++ src/main/resources/bootstrap.properties | 4 ++-- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 5aac308..3ca8df4 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ com.alibaba.cloud spring-cloud-alibaba-dependencies - 2022.0.0.0 + 2022.0.0.0-RC2 pom import @@ -55,6 +55,7 @@ org.springframework.boot spring-boot-starter-web --> + org.springframework.boot spring-boot-starter-data-redis diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ServiceAPIController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ServiceAPIController.java index f08513e..468ee08 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ServiceAPIController.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/ServiceAPIController.java @@ -74,13 +74,16 @@ public class ServiceAPIController { return OptResult.success("资源释放成功"); } - @PostMapping("/request") + @PostMapping("/request/{modelId}") @Operation(summary = "请求调度") @Transactional public OptResult schedule(@PathVariable Long modelId) { // 1. 存储modelConfig到缓存 String modelConfig = serviceAPIService.getByModelId(modelId); int requestMemorySize = parseGpuMemorySize(modelConfig); + if (requestMemorySize == -1){ + return OptResult.error("解析配置失败,请检查模型:" + modelId +"是否存在"); + } String modelConfigKey = "modelConfig:" + modelId; redisTemplate.opsForValue().set(modelConfigKey, modelConfig); // 2. 获取Nacos实例IP列表 diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/filter/ApiRequestGlobalFilter.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/filter/ApiRequestGlobalFilter.java index 41eb59c..c015c05 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/filter/ApiRequestGlobalFilter.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/filter/ApiRequestGlobalFilter.java @@ -15,16 +15,12 @@ public class ApiRequestGlobalFilter implements GlobalFilter, Ordered { @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); - // 检查请求路径和方法 - if (request.getURI().getPath().equals("/request") && + if (request.getURI().getPath().equals("/request/{id}") && request.getMethod() == HttpMethod.POST) { - // 在此处添加拦截逻辑 System.out.println("拦截到POST /request请求"); - } - // 继续处理请求 return chain.filter(exchange); } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java index 31f384f..021f1f8 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java @@ -1,5 +1,6 @@ package com.bipt.intelligentapplicationorchestrationservice.pojo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -18,6 +19,7 @@ public class ServicePublishDTO implements Serializable { private Long id; private Long modelId; private String apiUrl; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime createTime; private String ip; } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 0115fcb..1bcdc62 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -29,6 +29,8 @@ spring.cloud.gateway.routes[0].predicates[0]=Path=/request +logging.level.org.springframework.web=DEBUG + #SQL 语句日志输出配置 logging.level.com.bipt.intelligentapplicationorchestrationservice.mapper=DEBUG mybatis.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl diff --git a/src/main/resources/bootstrap.properties b/src/main/resources/bootstrap.properties index b24d590..592b856 100644 --- a/src/main/resources/bootstrap.properties +++ b/src/main/resources/bootstrap.properties @@ -2,9 +2,9 @@ spring.application.name=intelligent-application-orchestration-service # Nacos配置中心地址(引导阶段加载配置) -spring.cloud.nacos.config.server-addr=192.168.100.1:8848 +spring.cloud.nacos.config.server-addr=113.44.217.169:8848 spring.cloud.nacos.config.data-id=${spring.application.name}.properties spring.cloud.nacos.config.group=DEFAULT_GROUP # Nacos服务注册地址(引导阶段注册服务) -spring.cloud.nacos.discovery.server-addr=192.168.100.1:8848 \ No newline at end of file +spring.cloud.nacos.discovery.server-addr=113.44.217.169:8848 \ No newline at end of file -- 2.25.1 From 92b470e00116355c9f1784c262ce07e9ad3495d2 Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Wed, 4 Jun 2025 12:08:10 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=EF=BC=88=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PublishController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java index 5cdf455..9f4d604 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java @@ -21,8 +21,6 @@ public class PublishController { @Autowired private PublishService publishService; - @Autowired - private RedisTemplate redisTemplate; @Autowired private NacosServiceUtil nacosServiceUtil; -- 2.25.1 From 158fdca6e075f3fa15074a83a53defee6f60140e Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Wed, 4 Jun 2025 14:10:52 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E7=AE=97=E6=B3=95=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=EF=BC=88=E6=9A=82=E6=97=A0=E5=88=86=E5=B8=83=E5=BC=8F=E5=AD=98?= =?UTF-8?q?=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AlgorithmInfoController.java | 19 ++++++++++++++++++- .../pojo/AlgorithmInfo.java | 9 +++++++++ .../service/AlgorithmInfoService.java | 5 ++++- .../Impl/AlgorithmInfoServiceImpl.java | 19 +++++++++++++++++++ 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/AlgorithmInfoController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/AlgorithmInfoController.java index df1f0e8..85d72da 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/AlgorithmInfoController.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/AlgorithmInfoController.java @@ -1,15 +1,20 @@ package com.bipt.intelligentapplicationorchestrationservice.controller; import com.bipt.intelligentapplicationorchestrationservice.pojo.AlgorithmInfo; +import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult; import com.bipt.intelligentapplicationorchestrationservice.service.AlgorithmInfoService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; - +@Tag(name ="算法创建相关接口") @RestController @RequestMapping("/api/algorithm") +@Slf4j public class AlgorithmInfoController { @Autowired @@ -57,4 +62,16 @@ public class AlgorithmInfoController { ResponseEntity.ok("Delete successful") : ResponseEntity.badRequest().body("Delete failed"); } + + /** + * 算法创建 + */ + @PostMapping + @Operation(summary ="算法创建") + public OptResult save(@RequestBody AlgorithmInfo algorithmInfo){ + log.info("新增算法",algorithmInfo); + algorithmInfoService.save(algorithmInfo); + return OptResult.success("算法创建成功"); + } + } \ No newline at end of file diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/AlgorithmInfo.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/AlgorithmInfo.java index 49e0d5e..5fe9302 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/AlgorithmInfo.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/AlgorithmInfo.java @@ -1,7 +1,16 @@ package com.bipt.intelligentapplicationorchestrationservice.pojo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + import java.time.LocalDateTime; +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor public class AlgorithmInfo { private Long id; private String algorithmName; diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/AlgorithmInfoService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/AlgorithmInfoService.java index e7d73d1..2ee1437 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/AlgorithmInfoService.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/AlgorithmInfoService.java @@ -11,4 +11,7 @@ public interface AlgorithmInfoService { boolean update(AlgorithmInfo algorithmInfo); boolean delete(Long id); boolean validateAlgorithmInfo(AlgorithmInfo algorithmInfo); -} \ No newline at end of file + + void save(AlgorithmInfo algorithmInfo); + +} \ No newline at end of file diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/AlgorithmInfoServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/AlgorithmInfoServiceImpl.java index a16a117..4c67999 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/AlgorithmInfoServiceImpl.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/AlgorithmInfoServiceImpl.java @@ -60,4 +60,23 @@ public class AlgorithmInfoServiceImpl implements AlgorithmInfoService { return true; } + + /** + * 算法创建 + * @param algorithmInfo + */ + @Override + @Transactional + public void save(AlgorithmInfo algorithmInfo) { + String algorithmName = algorithmInfo.getAlgorithmName(); + //查找表里是否有重复的算法,如果有则报错 + AlgorithmInfo duplicateName = algorithmInfoMapper.selectByName(algorithmName); + if (duplicateName != null){ + throw new RuntimeException("算法已存在"); + } + //todo 算法文件分布式存入分布式存储中 + + + algorithmInfoMapper.insert(algorithmInfo); + } } \ No newline at end of file -- 2.25.1