xiaohucoding #13

Manually merged
lpz merged 5 commits from xiaohucoding into main 2025-05-29 09:36:32 +08:00
7 changed files with 136 additions and 119 deletions
Showing only changes of commit 60a71a121c - Show all commits

View File

@ -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/");
// }
}

View File

@ -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<List<ServicePublishVO>> 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) {

View File

@ -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<String, String> metadata = new HashMap<>();
metadata.put("url", url); // 将URL存入元数据
instance.setMetadata(metadata);
naming.registerInstance(serviceName, instance);
}
/**
* 获取服务所有实例IP
*/
public List<String> getServiceInstances(String serviceName) throws Exception {
NamingService naming = NamingFactory.createNamingService(nacosServerAddr);
List<Instance> instances = naming.getAllInstances(serviceName);
return instances.stream()
.map(Instance::getIp)
.collect(Collectors.toList());
}
}