From 0b454413c0ab18fee98746b0080b11965fa215a5 Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Sun, 18 May 2025 21:59:19 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E7=94=9F?= =?UTF-8?q?=E5=91=BD=E5=91=A8=E6=9C=9F=E7=89=88=E6=9C=AC2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 +- .../constant/MessageConstant.java | 2 +- .../constant/StatusConstant.java | 13 +++++ .../controller/DatasetController.java | 8 ++- .../enumeration/DatasetType.java | 35 ++++++++++++ .../service/Impl/DatasetServiceImpl.java | 56 ++++++++++--------- 6 files changed, 90 insertions(+), 30 deletions(-) create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/StatusConstant.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/DatasetType.java diff --git a/pom.xml b/pom.xml index 2d08e34..ba0fbb6 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot spring-boot-starter-parent - 3.4.5 + 3.2.5 com.bipt @@ -27,7 +27,7 @@ - 24 + 21 diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java index 0985939..3240df9 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/MessageConstant.java @@ -2,5 +2,5 @@ package com.bipt.intelligentapplicationorchestrationservice.constant; public class MessageConstant { public static final String UNKNOWN_ERROR = "未知错误"; - public static final String ALREADY_EXISTS = "数据集已存在"; + public static final String ALREADY_EXISTS = "已存在"; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/StatusConstant.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/StatusConstant.java new file mode 100644 index 0000000..58abe56 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/constant/StatusConstant.java @@ -0,0 +1,13 @@ +package com.bipt.intelligentapplicationorchestrationservice.constant; + +/** + * 状态常量,启用或者禁用 + * @author hky + */ +public class StatusConstant { + //启用 + public static final Integer ENABLE = 1; + + //禁用 + public static final Integer DISABLE = 0; +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java index be81792..fb86a00 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/DatasetController.java @@ -2,12 +2,14 @@ package com.bipt.intelligentapplicationorchestrationservice.controller; import com.bipt.intelligentapplicationorchestrationservice.pojo.*; import com.bipt.intelligentapplicationorchestrationservice.service.DatasetService; +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.web.bind.annotation.*; import java.util.List; - +@Tag(name ="数据集相关接口") @RestController @RequestMapping("/dataset") @Slf4j @@ -20,6 +22,7 @@ public class DatasetController { * @param datasetDTO * @return */ + @Operation(summary ="新增数据集") @PostMapping public OptResult save(@RequestBody DatasetDTO datasetDTO) { log.info("新增数据集:{}", datasetDTO); @@ -32,6 +35,7 @@ public class DatasetController { * @param dataSetPageQueryDTO * @return */ + @Operation(summary ="分页查询") @GetMapping("/page") public OptResult page(DatasetPageQueryDTO dataSetPageQueryDTO) { log.info("数据集分页查询:{}", dataSetPageQueryDTO); @@ -45,6 +49,7 @@ public class DatasetController { * @param datasetDTO * @return */ + @Operation(summary ="修改数据集") @PutMapping public OptResult update(@RequestBody DatasetDTO datasetDTO){ log.info("修改数据集",datasetDTO); @@ -59,6 +64,7 @@ public class DatasetController { * @param datasetIds 数据集ID列表 * @return 操作结果 */ + @Operation(summary ="删除数据集") @DeleteMapping public OptResult deleteBatch(@RequestBody List datasetIds) { log.info("批量删除数据集,ID列表:{}", datasetIds); diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/DatasetType.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/DatasetType.java new file mode 100644 index 0000000..75e7752 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/enumeration/DatasetType.java @@ -0,0 +1,35 @@ +package com.bipt.intelligentapplicationorchestrationservice.enumeration; + +import lombok.Getter; + +/** + * @author hky + */ + +@Getter +public enum DatasetType { + UPLOAD(0,"用户上传"), + FROM_DATABASE(1,"来源于数据库"); + + private final Integer code; + private final String description; + + DatasetType(Integer code, String description) { + this.code = code; + this.description = description; + } + + /** + * 根据状态码获取对应的枚举值 + * @param code 状态码 + * @return 对应的枚举值 + */ + public static DatasetType fromCode(Integer code) { + for (DatasetType datasetType : DatasetType.values()) { + if (datasetType.getCode().equals(code)) { + return datasetType; + } + } + throw new IllegalArgumentException("无效的数据集状态码: " + code); + } +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java index dafc65e..9e04dd4 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/DatasetServiceImpl.java @@ -1,5 +1,7 @@ package com.bipt.intelligentapplicationorchestrationservice.service.Impl; +import com.bipt.intelligentapplicationorchestrationservice.constant.StatusConstant; +import com.bipt.intelligentapplicationorchestrationservice.enumeration.DatasetType; import com.bipt.intelligentapplicationorchestrationservice.mapper.DatasetMapper; import com.bipt.intelligentapplicationorchestrationservice.pojo.*; import com.bipt.intelligentapplicationorchestrationservice.service.DatasetService; @@ -15,6 +17,8 @@ import java.time.LocalDateTime; import java.util.Collections; import java.util.List; +import static com.bipt.intelligentapplicationorchestrationservice.enumeration.DatasetType.FROM_DATABASE; + @Service @Slf4j public class DatasetServiceImpl implements DatasetService { @@ -29,20 +33,26 @@ public class DatasetServiceImpl implements DatasetService { @Transactional public void save(DatasetDTO datasetDTO) { //判断数据集类型,如果是本地上传则保存,若用调用数据仓库进入下一步 - if (datasetDTO.getDatasetType()==0){ - //TODO 保存到分布式文件系统 + // 获取数据集类型 + DatasetType datasetType = DatasetType.fromCode(datasetDTO.getDatasetType()); + // 根据类型处理数据 + switch (datasetType) { + case UPLOAD: + //TODO 保存到分布式文件系统 + break; + case FROM_DATABASE: + String args = datasetDTO.getArgs(); + //TODO 根据筛选条件调用数据仓库中的数据 - }else { -// Map args = datasetDTO.getArgs(); - String args = datasetDTO.getArgs(); - int datasetType = datasetDTO.getDatasetType(); - //TODO 根据筛选条件调用数据仓库中的数据 - - //TODO 调用数据仓库保存到分布式文件系统 + //TODO 调用数据仓库保存到分布式文件系统 + break; + default: + throw new IllegalArgumentException("不支持的数据集类型: " + datasetType); } + DatasetEntity datasetEntity = new DatasetEntity(); BeanUtils.copyProperties(datasetDTO,datasetEntity); - datasetEntity.setDatasetStatus(1); + datasetEntity.setDatasetStatus(StatusConstant.ENABLE); datasetEntity.setCreateTime(LocalDateTime.now()); datasetEntity.setUpdateTime(LocalDateTime.now()); datasetMapper.insert(datasetEntity); @@ -59,15 +69,18 @@ public class DatasetServiceImpl implements DatasetService { public void update(DatasetDTO datasetDTO) { /*DatasetEntity datasetEntity = new DatasetEntity(); BeanUtils.copyProperties(datasetDTO,datasetEntity);*/ - if (datasetDTO.getDatasetType()==0){ - //TODO 覆盖保存到分布式文件系统中 - - }else { - //TODO 覆盖数据文件 - - - //TODO + DatasetType datasetType = DatasetType.fromCode(datasetDTO.getDatasetType()); + // 根据类型处理数据 + switch (datasetType) { + case UPLOAD: + //TODO 覆盖保存到分布式文件系统中 + break; + case FROM_DATABASE: + //TODO 覆盖数据文件 + break; + default: + throw new IllegalArgumentException("不支持的数据集类型: " + datasetType); } DatasetEntity datasetEntity = new DatasetEntity(); BeanUtils.copyProperties(datasetDTO,datasetEntity); @@ -94,14 +107,7 @@ public class DatasetServiceImpl implements DatasetService { @Override @Transactional public void deleteBatch(List datasetIds) { - for (Long datasetId : datasetIds) { - DatasetEntity datasetEntity = datasetMapper.getById(datasetId); - if (datasetEntity == null) { - throw new IllegalArgumentException("数据集不存在,ID:" + datasetId); - } - - } //TODO 在分布式文件系统中删除 datasetMapper.deleteBatch(datasetIds); } From eee91c212aac861b30aa75c8f04d81eb96ed652f Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Sun, 18 May 2025 22:06:03 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/WorkReport/2025-05-hky.md | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/doc/WorkReport/2025-05-hky.md b/doc/WorkReport/2025-05-hky.md index 6d8f14d..fd40f2e 100644 --- a/doc/WorkReport/2025-05-hky.md +++ b/doc/WorkReport/2025-05-hky.md @@ -36,17 +36,4 @@ 暂无 ### 📅 明日计划 -完成模型服务的数据库表设计 - -## 2025年5月19日 -### ✅ 今日完成 -完成了服务发布的表设计 - -### 🚧 进行中 -缓存设计 - -### ⚠️ 问题/障碍 -暂无 - -### 📅 明日计划 -完成缓存设计,以及实体类设计 \ No newline at end of file +完成模型服务的数据库表设计 \ No newline at end of file From 3599a052a300f2339a750584b25a73e2977a284b Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Tue, 20 May 2025 16:33:07 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8F=91=E5=B8=83?= =?UTF-8?q?=EF=BC=88=E6=97=A0redis=E7=89=88=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/DesignDocument/模型服务表--hky.md | 16 ++++++ pom.xml | 4 ++ .../config/RedisConfiguration.java | 26 ++++++++++ .../controller/publishController.java | 41 +++++++++++++++ .../mapper/PublishMapper.java | 21 ++++++++ .../pojo/ServicePublish.java | 23 +++++++++ .../pojo/ServicePublishDTO.java | 22 ++++++++ .../pojo/ServicePublishVO.java | 29 +++++++++++ .../service/Impl/PublishServiceImpl.java | 50 +++++++++++++++++++ .../service/PublishService.java | 10 ++++ src/main/resources/application.properties | 13 ++++- src/main/resources/mapper/PublishMapper.xml | 20 ++++++++ 12 files changed, 274 insertions(+), 1 deletion(-) create mode 100644 doc/DesignDocument/模型服务表--hky.md create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/RedisConfiguration.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java create mode 100644 src/main/resources/mapper/PublishMapper.xml diff --git a/doc/DesignDocument/模型服务表--hky.md b/doc/DesignDocument/模型服务表--hky.md new file mode 100644 index 0000000..f4e8c64 --- /dev/null +++ b/doc/DesignDocument/模型服务表--hky.md @@ -0,0 +1,16 @@ +# 数据库设计文档 + +## 服务发布 + +### 服务发布 + +#### 1.服务发布表(service_publish) + +| 序号 | 数据表名 | 中文名称 | +| ---- | -------- | ------------------ | +| 1 | id | 发布表id(发布记录唯一标识) | +| 2 | model_id | 模型id | +| 3 | api_url | api路径 | +| 4 | create_time | 发布请求创建时间 | + +#### diff --git a/pom.xml b/pom.xml index ba0fbb6..8255ccc 100644 --- a/pom.xml +++ b/pom.xml @@ -39,6 +39,10 @@ spring-boot-starter-web + + org.springframework.boot + spring-boot-starter-data-redis + org.postgresql postgresql diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/RedisConfiguration.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/RedisConfiguration.java new file mode 100644 index 0000000..8e3a30a --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/RedisConfiguration.java @@ -0,0 +1,26 @@ +package com.bipt.intelligentapplicationorchestrationservice.config; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.StringRedisSerializer; + + +@Configuration +@Slf4j +public class RedisConfiguration { + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){ + log.info("开始创建redis模板对象..."); + RedisTemplate redisTemplate = new RedisTemplate(); + //设置redis的连接工厂对象 + redisTemplate.setConnectionFactory(redisConnectionFactory); + //设置redis key的序列化器 + redisTemplate.setKeySerializer(new StringRedisSerializer()); + + return redisTemplate; + + } +} 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..586f991 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java @@ -0,0 +1,41 @@ +package com.bipt.intelligentapplicationorchestrationservice.controller; + +import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; +import com.bipt.intelligentapplicationorchestrationservice.service.PublishService; +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.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name ="服务发布相关接口") +@RestController +@RequestMapping("/publish") +@Slf4j +public class publishController { + @Autowired + private PublishService publishService; + + /** + * 新增请求发布 + * @param servicePublishDTO + * @return + */ + @PostMapping + @Operation(summary ="新增发布请求") + public OptResult save(@RequestBody ServicePublishDTO servicePublishDTO){ + log.info("模型发布请求:{}", servicePublishDTO); + publishService.save(servicePublishDTO); + ServicePublishVO servicePublishVO = publishService.getByModelId(servicePublishDTO); + return OptResult.success(servicePublishVO); + } + + + + +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java new file mode 100644 index 0000000..177c38e --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java @@ -0,0 +1,21 @@ +package com.bipt.intelligentapplicationorchestrationservice.mapper; + +import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +@Mapper +public interface PublishMapper { + + + + void insert(ServicePublishDTO servicePublishDTO); + + Long getByApiUrl(String apiUrl); + @Select("select * from model_version where model_id=#{modelId} and status = 1") + ModelVersion getById(Long modelId); + + ServicePublishVO getByModelId(Long modelId); +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java new file mode 100644 index 0000000..d17b386 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java @@ -0,0 +1,23 @@ +package com.bipt.intelligentapplicationorchestrationservice.pojo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @author hky + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ServicePublish implements Serializable { + private Long id; + private Long modelId; + private String apiUrl; + private LocalDateTime createTime; +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java new file mode 100644 index 0000000..039a6a5 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java @@ -0,0 +1,22 @@ +package com.bipt.intelligentapplicationorchestrationservice.pojo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.time.LocalDateTime; +/** + * @author hky + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ServicePublishDTO implements Serializable { + private Long id; + private Long modelId; + private String apiUrl; + private LocalDateTime createTime; +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java new file mode 100644 index 0000000..ec12f7f --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java @@ -0,0 +1,29 @@ +package com.bipt.intelligentapplicationorchestrationservice.pojo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @author hky + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ServicePublishVO implements Serializable { + private Long modelId; + private String apiUrl; + private String version; + private Integer datasetId; + private String modelConfig; + private String modelPath; + private Integer status; + private LocalDateTime createTime; + + +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java new file mode 100644 index 0000000..5e34fc9 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java @@ -0,0 +1,50 @@ +package com.bipt.intelligentapplicationorchestrationservice.service.Impl; + +import com.bipt.intelligentapplicationorchestrationservice.mapper.PublishMapper; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; +import com.bipt.intelligentapplicationorchestrationservice.service.PublishService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * @author hky + */ +@Service +@Slf4j +public class PublishServiceImpl implements PublishService { + + @Autowired + private PublishMapper publishMapper; + /** + * 新增服务请求 + * @param servicePublishDTO + */ + @Override + @Transactional + public void save(ServicePublishDTO servicePublishDTO) { + String apiUrl = servicePublishDTO.getApiUrl(); + Long id = publishMapper.getByApiUrl(apiUrl); + if (id != null){ + throw new IllegalArgumentException("请求已存在: " + apiUrl); + } + Long modelId = servicePublishDTO.getModelId(); + ModelVersion modelVersion = publishMapper.getById(modelId); + String modelConfig = modelVersion.getModelConfig(); + //todo 调用GPU分配 + + + publishMapper.insert(servicePublishDTO); + } + + @Override + public ServicePublishVO getByModelId(ServicePublishDTO servicePublishDTO) { + Long modelId = servicePublishDTO.getModelId(); + return publishMapper.getByModelId(modelId); + } + + +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java new file mode 100644 index 0000000..b4a22ca --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java @@ -0,0 +1,10 @@ +package com.bipt.intelligentapplicationorchestrationservice.service; + +import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; +import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; + +public interface PublishService { + void save(ServicePublishDTO servicePublishDTO); + + ServicePublishVO getByModelId(ServicePublishDTO servicePublishDTO); +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index fdc5805..30ffe18 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -15,4 +15,15 @@ mybatis.mapper-locations=classpath:mapper/*.xml # 配置实体类别名所在包 mybatis.type-aliases-package=com.bipt.intelligentapplicationorchestrationservice.pojo # 开启驼峰命名转换 -mybatis.configuration.map-underscore-to-camel-case=true \ No newline at end of file +mybatis.configuration.map-underscore-to-camel-case=true + +# Redis服务器地址 +spring.data.redis.host=localhost +# Redis服务器端口 +spring.data.redis.port=6379 +# Redis密码(如果有) +spring.data.redis.password=123456 +# Redis数据库索引(默认为0) +spring.data.redis.database=2 +# 连接超时时间(毫秒) +spring.data.redis.timeout=3000 diff --git a/src/main/resources/mapper/PublishMapper.xml b/src/main/resources/mapper/PublishMapper.xml new file mode 100644 index 0000000..d69505c --- /dev/null +++ b/src/main/resources/mapper/PublishMapper.xml @@ -0,0 +1,20 @@ + + + + + INSERT INTO service_publish + (id,model_id,api_url,create_time) + values (#{id}, #{modelId}, #{apiUrl}, #{createTime}) + + + + + \ No newline at end of file From ed38bb26009d2aa4b4ce7b5066d4ad9defb4f0a6 Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Tue, 20 May 2025 16:36:54 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8F=91=E5=B8=83?= =?UTF-8?q?=EF=BC=88=E6=97=A0redis=E7=89=88=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/WorkReport/2025-05-hky.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/doc/WorkReport/2025-05-hky.md b/doc/WorkReport/2025-05-hky.md index fd40f2e..45598e5 100644 --- a/doc/WorkReport/2025-05-hky.md +++ b/doc/WorkReport/2025-05-hky.md @@ -36,4 +36,30 @@ 暂无 ### 📅 明日计划 -完成模型服务的数据库表设计 \ No newline at end of file +完成模型服务的数据库表设计 + +## 2025年5月19日 +### ✅ 今日完成 +模型发布的数据库设计 + +### 🚧 进行中 +模型发布的逻辑开发 + +### ⚠️ 问题/障碍 +暂无 + +### 📅 明日计划 +完成模型发布的逻辑开发 + +## 2025年5月20日 +### ✅ 今日完成 +服务发布逻辑开发(无GPU版) + +### 🚧 进行中 +redis设计 + +### ⚠️ 问题/障碍 +暂无 + +### 📅 明日计划 +完成redis设计,做完服务发布的逻辑开发 \ No newline at end of file From de32099ea9bb72cea884314a9ac752cb9627e05c Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Wed, 21 May 2025 15:56:02 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8F=91=E5=B8=83?= =?UTF-8?q?=EF=BC=88=E6=97=A0redis=E7=89=88=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.properties | 6 +-- .../RedisTest.java | 53 +++++++++++++++++++ 2 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 src/test/java/com/bipt/intelligentapplicationorchestrationservice/RedisTest.java diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 30ffe18..20c8a9e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -18,12 +18,12 @@ mybatis.type-aliases-package=com.bipt.intelligentapplicationorchestrationservice mybatis.configuration.map-underscore-to-camel-case=true # Redis服务器地址 -spring.data.redis.host=localhost +spring.data.redis.host=116.205.121.200 # Redis服务器端口 spring.data.redis.port=6379 # Redis密码(如果有) -spring.data.redis.password=123456 +spring.data.redis.password=Jbjhhzstsl97@ # Redis数据库索引(默认为0) -spring.data.redis.database=2 +spring.data.redis.database=0 # 连接超时时间(毫秒) spring.data.redis.timeout=3000 diff --git a/src/test/java/com/bipt/intelligentapplicationorchestrationservice/RedisTest.java b/src/test/java/com/bipt/intelligentapplicationorchestrationservice/RedisTest.java new file mode 100644 index 0000000..72461e5 --- /dev/null +++ b/src/test/java/com/bipt/intelligentapplicationorchestrationservice/RedisTest.java @@ -0,0 +1,53 @@ +package com.bipt.intelligentapplicationorchestrationservice; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.redis.core.*; + +import java.util.List; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +@SpringBootTest +public class RedisTest { + + @Autowired + private RedisTemplate redisTemplate; + + @Test + public void testRedisTemplate(){ + System.out.println(redisTemplate); + ValueOperations valueOperations = redisTemplate.opsForValue(); + HashOperations hashOperations = redisTemplate.opsForHash(); + ListOperations listOperations = redisTemplate.opsForList(); + SetOperations setOperations = redisTemplate.opsForSet(); + ZSetOperations zSetOperations = redisTemplate.opsForZSet(); + } + @Test + public void testString(){ + //set get setex setnx + redisTemplate.opsForValue().set("name","小明"); + String city =(String) redisTemplate.opsForValue().get("name"); + System.out.println(city); + redisTemplate.opsForValue().set("code","1234",3, TimeUnit.MINUTES); + redisTemplate.opsForValue().setIfAbsent("lock","1"); + redisTemplate.opsForValue().setIfAbsent("lock","2"); + } + @Test + public void testHash(){ +// hset hget hdel hkeys hvals + HashOperations hashOperations = redisTemplate.opsForHash(); + hashOperations.put("100","name","tom"); + hashOperations.put("100","age","20"); + + String name = (String) hashOperations.get("100", "name"); + System.out.println(name); + + Set keys = hashOperations.keys("100"); + System.out.println(keys); + List values = hashOperations.values("100"); + System.out.println(values); + hashOperations.delete("100","age"); + } +} From 5af1b7a5771e286537b3bd8cbe4db0938880c8db Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Wed, 21 May 2025 22:18:31 +0800 Subject: [PATCH 6/8] =?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 --- doc/WorkReport/2025-05-hky.md | 16 +++++++++- .../controller/publishController.java | 31 ++++++++++++++++--- .../mapper/PublishMapper.java | 5 ++- .../pojo/ServicePublish.java | 6 ++-- .../pojo/ServicePublishDTO.java | 1 + .../pojo/ServicePublishVO.java | 10 ++---- .../service/Impl/PublishServiceImpl.java | 18 +++++------ .../service/PublishService.java | 7 +++-- src/main/resources/application.properties | 4 +-- 9 files changed, 64 insertions(+), 34 deletions(-) diff --git a/doc/WorkReport/2025-05-hky.md b/doc/WorkReport/2025-05-hky.md index 45598e5..08580ac 100644 --- a/doc/WorkReport/2025-05-hky.md +++ b/doc/WorkReport/2025-05-hky.md @@ -62,4 +62,18 @@ redis设计 暂无 ### 📅 明日计划 -完成redis设计,做完服务发布的逻辑开发 \ No newline at end of file +完成redis设计,做完服务发布的逻辑开发 + +## 2025年5月21日 +### ✅ 今日完成 +redis的服务器配置 + +### 🚧 进行中 +开发服务发布的redis内容 + +### ⚠️ 问题/障碍 +如何把model_version表中的配置中相关GPU资源的内容提取出来。 + + +### 📅 明日计划 +完成服务发布的开发 \ No newline at end of file diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java index 586f991..8cd5599 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java @@ -1,18 +1,21 @@ package com.bipt.intelligentapplicationorchestrationservice.controller; -import com.bipt.intelligentapplicationorchestrationservice.pojo.OptResult; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; +import com.bipt.intelligentapplicationorchestrationservice.config.RedisConfiguration; +import com.bipt.intelligentapplicationorchestrationservice.pojo.*; import com.bipt.intelligentapplicationorchestrationservice.service.PublishService; 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.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @Tag(name ="服务发布相关接口") @RestController @RequestMapping("/publish") @@ -21,6 +24,8 @@ public class publishController { @Autowired private PublishService publishService; + @Autowired + private RedisTemplate redisTemplate; /** * 新增请求发布 * @param servicePublishDTO @@ -28,11 +33,27 @@ public class publishController { */ @PostMapping @Operation(summary ="新增发布请求") + @Transactional public OptResult save(@RequestBody ServicePublishDTO servicePublishDTO){ log.info("模型发布请求:{}", servicePublishDTO); publishService.save(servicePublishDTO); - ServicePublishVO servicePublishVO = publishService.getByModelId(servicePublishDTO); - return OptResult.success(servicePublishVO); + Long modelId = servicePublishDTO.getModelId(); + String key="Model_" + modelId; + //查询redis是否存在GPU相关资源数据 + ServicePublishVO servicePublishVO = (ServicePublishVO) redisTemplate.opsForValue().get(key); + //如果存在,直接返回,无须查询数据库 + if (servicePublishVO != null){ + return OptResult.success(servicePublishVO); + } + + String modelConfig = publishService.getByModelId(modelId); + //todo 序列化结果提出来 + + ServicePublish servicePublish = new ServicePublish(); + String ip = servicePublishDTO.getIp(); + servicePublish.setIp(ip); + + return OptResult.success(); } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java index 177c38e..5582b45 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/mapper/PublishMapper.java @@ -14,8 +14,7 @@ public interface PublishMapper { void insert(ServicePublishDTO servicePublishDTO); Long getByApiUrl(String apiUrl); - @Select("select * from model_version where model_id=#{modelId} and status = 1") - ModelVersion getById(Long modelId); + @Select("select model_config from model_version where model_id=#{modelId} and status = 1") + String getById(Long modelId); - ServicePublishVO getByModelId(Long modelId); } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java index d17b386..9dd928b 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublish.java @@ -16,8 +16,8 @@ import java.time.LocalDateTime; @NoArgsConstructor @AllArgsConstructor public class ServicePublish implements Serializable { - private Long id; private Long modelId; - private String apiUrl; - private LocalDateTime createTime; + private String GPUModel; + private String ip; + private String GPUMemorySize; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java index 039a6a5..31f384f 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishDTO.java @@ -19,4 +19,5 @@ public class ServicePublishDTO implements Serializable { private Long modelId; private String apiUrl; private LocalDateTime createTime; + private String ip; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java index ec12f7f..d49a340 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java @@ -17,13 +17,9 @@ import java.time.LocalDateTime; @AllArgsConstructor public class ServicePublishVO implements Serializable { private Long modelId; - private String apiUrl; - private String version; - private Integer datasetId; - private String modelConfig; - private String modelPath; - private Integer status; - private LocalDateTime createTime; + private String GPUModel; + private String ip; + private String GPUMemorySize; } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java index 5e34fc9..52b422a 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/Impl/PublishServiceImpl.java @@ -1,9 +1,7 @@ package com.bipt.intelligentapplicationorchestrationservice.service.Impl; import com.bipt.intelligentapplicationorchestrationservice.mapper.PublishMapper; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ModelVersion; import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; import com.bipt.intelligentapplicationorchestrationservice.service.PublishService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -31,19 +29,17 @@ public class PublishServiceImpl implements PublishService { if (id != null){ throw new IllegalArgumentException("请求已存在: " + apiUrl); } - Long modelId = servicePublishDTO.getModelId(); - ModelVersion modelVersion = publishMapper.getById(modelId); - String modelConfig = modelVersion.getModelConfig(); - //todo 调用GPU分配 - - publishMapper.insert(servicePublishDTO); } + /** + * 根据id查找配置信息 + * @param modelId + * @return + */ @Override - public ServicePublishVO getByModelId(ServicePublishDTO servicePublishDTO) { - Long modelId = servicePublishDTO.getModelId(); - return publishMapper.getByModelId(modelId); + public String getByModelId(Long modelId) { + return publishMapper.getById(modelId); } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java index b4a22ca..4d3b410 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/service/PublishService.java @@ -1,10 +1,13 @@ package com.bipt.intelligentapplicationorchestrationservice.service; import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishDTO; -import com.bipt.intelligentapplicationorchestrationservice.pojo.ServicePublishVO; public interface PublishService { + void save(ServicePublishDTO servicePublishDTO); - ServicePublishVO getByModelId(ServicePublishDTO servicePublishDTO); + + + + String getByModelId(Long modelId); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 20c8a9e..2b97d0a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -24,6 +24,6 @@ spring.data.redis.port=6379 # Redis密码(如果有) spring.data.redis.password=Jbjhhzstsl97@ # Redis数据库索引(默认为0) -spring.data.redis.database=0 +spring.data.redis.database = 0 # 连接超时时间(毫秒) -spring.data.redis.timeout=3000 +spring.data.redis.timeout = 3000 From d01f3bfcbf63cb67d2f96b8e486249627264177a Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Thu, 22 May 2025 15:57:15 +0800 Subject: [PATCH 7/8] =?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 | 84 +++++++++++++++---- .../pojo/MachineInfo.java | 39 +++++++++ .../pojo/ServicePublishVO.java | 1 + 3 files changed, 107 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/MachineInfo.java diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java index 8cd5599..ea333da 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java @@ -9,11 +9,9 @@ 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.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; @Tag(name ="服务发布相关接口") @@ -34,29 +32,81 @@ public class publishController { @PostMapping @Operation(summary ="新增发布请求") @Transactional - public OptResult save(@RequestBody ServicePublishDTO servicePublishDTO){ + public OptResult> save(@RequestBody ServicePublishDTO servicePublishDTO) { log.info("模型发布请求:{}", servicePublishDTO); publishService.save(servicePublishDTO); Long modelId = servicePublishDTO.getModelId(); - String key="Model_" + modelId; + String key = "Model_" + modelId; //查询redis是否存在GPU相关资源数据 - ServicePublishVO servicePublishVO = (ServicePublishVO) redisTemplate.opsForValue().get(key); + List list; + list = (List) redisTemplate.opsForValue().get(key); //如果存在,直接返回,无须查询数据库 - if (servicePublishVO != null){ - return OptResult.success(servicePublishVO); + if (list != null) { + return OptResult.success(list); + }else { + list = new ArrayList<>(); + } + String modelConfig = publishService.getByModelId(modelId); + if (modelConfig == null) { + log.error("模型配置为空,modelId={}", modelId); + } + String[] keyValuePairs = modelConfig.split("\\|"); + String GPUMemorySize = null; + String GPUModel = null; + for (String pair : keyValuePairs) { + pair = pair.trim(); + if (pair.startsWith("GPU")) { + GPUModel = pair.split(";", 2)[1]; + } else if (pair.startsWith("Memory:")) { + GPUMemorySize = pair.split(":", 2)[1]; + } + } + ServicePublishVO servicePublishVO = new ServicePublishVO(); + servicePublishVO.setIp(servicePublishDTO.getIp()); + servicePublishVO.setModelId(servicePublishDTO.getModelId()); + servicePublishVO.setGPUMemorySize(GPUMemorySize); + servicePublishVO.setGPUModel(GPUModel); + //todo 调用模型部署,传递信息 + + servicePublishVO.setApiUrl(servicePublishDTO.getApiUrl()); + list.add(servicePublishVO); + redisTemplate.opsForValue().set(key,list); + //一个ip上有多个机器 + // 假设从 Redis 获取的列表元素是 MachineInfo 类型 + String ip = servicePublishVO.getIp(); + String key1 = ip; + List machineList = (List) redisTemplate.opsForValue().get(key1); + + + // 模型所需的 GPU 资源 + String requiredGPUModel = servicePublishVO.getGPUModel(); + Integer requiredGPUMemory = Integer.valueOf(servicePublishVO.getGPUMemorySize()); + + if (machineList != null) { + for (MachineInfo machine : machineList) { + // 获取机器的 GPU 资源 + String machineGPUModel = machine.getGPUModel(); + Integer machineGPUMemory = machine.getGPUMemorySize(); + + // 判断机器是否满足模型需求 + if (requiredGPUModel.equals(machineGPUModel) && + machineGPUMemory >= requiredGPUMemory) { + return OptResult.success(list); + } + } + String key3 = "wait_queue"; + redisTemplate.opsForValue().set(key3,list); + //todo资源释放时候优先分配等待队列中任务 + } - String modelConfig = publishService.getByModelId(modelId); - //todo 序列化结果提出来 - - ServicePublish servicePublish = new ServicePublish(); - String ip = servicePublishDTO.getIp(); - servicePublish.setIp(ip); - - return OptResult.success(); + return OptResult.success(list); } + + + } diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/MachineInfo.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/MachineInfo.java new file mode 100644 index 0000000..ccd4920 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/MachineInfo.java @@ -0,0 +1,39 @@ +package com.bipt.intelligentapplicationorchestrationservice.pojo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; +import java.util.Map; + +/** + * 机器信息实体类 + * @author hky + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MachineInfo implements Serializable { + private static final long serialVersionUID = 1L; + + private String id; // 机器唯一标识 + private String ip; // IP 地址 + private String hostname; // 主机名 + private Integer cpuCoreNum; // CPU 核心数 + private Long memoryTotal; // 总内存 (MB) + private Long memoryUsed; // 已用内存 (MB) + private String GPUModel; // GPU 型号 + private Integer GPUMemorySize; // GPU 显存大小 (GB) + private Integer GPUCount; // GPU 数量 + private Integer status; // 机器状态 (0: 离线, 1: 在线, 2: 繁忙) + private String os; // 操作系统 + private String region; // 所属区域 + private String zone; // 可用区 + private Date createTime; // 创建时间 + private Date updateTime; // 更新时间 + private Map labels; // 自定义标签 +} diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java index d49a340..0500cf5 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/pojo/ServicePublishVO.java @@ -20,6 +20,7 @@ public class ServicePublishVO implements Serializable { private String GPUModel; private String ip; private String GPUMemorySize; + private String apiUrl; } From f235f2d111e25c9aa08c37de12a0f5ccd063032d Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Thu, 22 May 2025 16:01:31 +0800 Subject: [PATCH 8/8] =?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 --- doc/WorkReport/2025-05-hky.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/doc/WorkReport/2025-05-hky.md b/doc/WorkReport/2025-05-hky.md index 08580ac..7fc9fad 100644 --- a/doc/WorkReport/2025-05-hky.md +++ b/doc/WorkReport/2025-05-hky.md @@ -74,6 +74,20 @@ redis的服务器配置 ### ⚠️ 问题/障碍 如何把model_version表中的配置中相关GPU资源的内容提取出来。 +### 📅 明日计划 +完成服务发布的开发 + +## 2025年5月22日 +### ✅ 今日完成 +服务发布,拦截器部分功能 + +### 🚧 进行中 +拦截器等待队列算法 + +### ⚠️ 问题/障碍 +不知道怎么优先分配等待队列中任务 ### 📅 明日计划 -完成服务发布的开发 \ No newline at end of file +完成拦截器功能 + +