Nacos 注册中心 远程调用

一、准备工作

1、新建model项目, 抽取微服务中的的model

2、在微服务的父项目中引入 model 依赖

<dependency>
    <groupId>com.wt</groupId>
    <artifactId>model</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

3、在微服务中配置 RestTemplate

@Configuration
public class OrderConfig {

    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

二、开启远程调用(service层)

1、服务发现,通过DiscoveryClient 

2、请求服务地址,通过RestTemplate

@Autowired
private DiscoveryClient discoveryClient;
@Autowired
private RestTemplate restTemplate;

/**
 * 远程调用
 * @param productId
 * @return
 */
public Product getProductFromRemote(Long productId){
    List<ServiceInstance> instances = discoveryClient.getInstances("services-product");
    ServiceInstance instance = instances.get(0);
    //http://localhost:9000/product/1
    String url = "http://" + instance.getHost()+":"+instance.getPort()+ "/product/" + productId;
    log.info(url);
    Product product = restTemplate.getForObject(url, Product.class);
    return product;
}

3、使用获取的数据

posted @ 2025-06-07 09:46  市丸银  阅读(29)  评论(0)    收藏  举报