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.info.Info;
import io.swagger.v3.oas.models.servers.Server; import io.swagger.v3.oas.models.servers.Server;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/**
* 配置类注册web层相关组件
*/
@Configuration @Configuration
@Slf4j @Slf4j
public class WebMvcConfiguration{ public class WebMvcConfiguration implements WebMvcConfigurer {
/** /**
* 配置OpenAPI信息 * 配置OpenAPI信息
@ -36,12 +34,4 @@ public class WebMvcConfiguration{
.servers(servers); .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 org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Tag(name ="服务发布相关接口") @Tag(name ="服务发布相关接口")
@RestController @RestController
@ -33,17 +36,15 @@ public class publishController {
public OptResult<List<ServicePublishVO>> save(@RequestBody ServicePublishDTO servicePublishDTO) { public OptResult<List<ServicePublishVO>> save(@RequestBody ServicePublishDTO servicePublishDTO) {
log.info("模型发布请求:{}", servicePublishDTO); log.info("模型发布请求:{}", servicePublishDTO);
publishService.save(servicePublishDTO); publishService.save(servicePublishDTO);
Long modelId = servicePublishDTO.getModelId(); //todo 调用模型部署
String key = "Model_" + modelId;
try { try {
// 新增传递apiUrl参数
nacosServiceUtil.registerService( nacosServiceUtil.registerService(
servicePublishDTO.getModelId().toString(), servicePublishDTO.getModelId().toString(),
servicePublishDTO.getIp(), servicePublishDTO.getIp(),
8080 8080,
servicePublishDTO.getApiUrl()
); );
log.info("Nacos服务注册成功"); log.info("Nacos服务注册成功");
} catch (Exception e) { } 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.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Component @Component
public class NacosServiceUtil { public class NacosServiceUtil {
@Value("${spring.cloud.nacos.discovery.server-addr}") @Value("${spring.cloud.nacos.discovery.server-addr}")
private String nacosServerAddr; 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); NamingService naming = NamingFactory.createNamingService(nacosServerAddr);
Instance instance = new Instance(); Instance instance = new Instance();
instance.setIp(ip); instance.setIp(ip);
instance.setPort(port); instance.setPort(port);
// 添加元数据存储URL
Map<String, String> metadata = new HashMap<>();
metadata.put("url", url); // 将URL存入元数据
instance.setMetadata(metadata);
naming.registerInstance(serviceName, instance); 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());
}
} }