diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java index 8efb176..003a69a 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/config/WebMvcConfiguration.java @@ -4,20 +4,18 @@ import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.servers.Server; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.ArrayList; import java.util.List; -/** - * 配置类,注册web层相关组件 - */ @Configuration @Slf4j -public class WebMvcConfiguration{ +public class WebMvcConfiguration implements WebMvcConfigurer { /** * 配置OpenAPI信息 @@ -36,12 +34,4 @@ public class WebMvcConfiguration{ .servers(servers); } -// /** -// * 设置静态资源映射(Springdoc不需要特殊配置,保留可能的其他资源映射) -// */ -// @Override -// protected void addResourceHandlers(ResourceHandlerRegistry registry) { -// // 保留其他静态资源映射(如果有) -// // registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); -// } } \ 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 6d98284..ebfe15f 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/publishController.java @@ -12,7 +12,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; @Tag(name ="服务发布相关接口") @RestController @@ -33,17 +36,15 @@ public class publishController { public OptResult> save(@RequestBody ServicePublishDTO servicePublishDTO) { log.info("模型发布请求:{}", servicePublishDTO); publishService.save(servicePublishDTO); - Long modelId = servicePublishDTO.getModelId(); - String key = "Model_" + modelId; - - - + //todo 调用模型部署 try { + // 新增传递apiUrl参数 nacosServiceUtil.registerService( servicePublishDTO.getModelId().toString(), servicePublishDTO.getIp(), - 8080 + 8080, + servicePublishDTO.getApiUrl() ); log.info("Nacos服务注册成功"); } catch (Exception e) { diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java index 53861a1..bc1a665 100644 --- a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/util/NacosServiceUtil.java @@ -6,16 +6,37 @@ import com.alibaba.nacos.api.naming.pojo.Instance; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + @Component public class NacosServiceUtil { + @Value("${spring.cloud.nacos.discovery.server-addr}") private String nacosServerAddr; - public void registerService(String serviceName, String ip, int port) throws Exception { + public void registerService(String serviceName, String ip, int port, String url) throws Exception { // 新增url参数 NamingService naming = NamingFactory.createNamingService(nacosServerAddr); Instance instance = new Instance(); instance.setIp(ip); instance.setPort(port); + // 添加元数据存储URL + Map metadata = new HashMap<>(); + metadata.put("url", url); // 将URL存入元数据 + instance.setMetadata(metadata); naming.registerInstance(serviceName, instance); } + + /** + * 获取服务所有实例IP + */ + public List getServiceInstances(String serviceName) throws Exception { + NamingService naming = NamingFactory.createNamingService(nacosServerAddr); + List instances = naming.getAllInstances(serviceName); + return instances.stream() + .map(Instance::getIp) + .collect(Collectors.toList()); + } } \ No newline at end of file