问题描述:

 我报的错就是上图所示,我的提供者和消费者服务都已经注册到nacos,将服务者RestTemplate访问的url也使用服务名替代了,结果调用的时候就报错java.net.UnknownHostException: XXX。

SpringCloud我的版本是2021.0.2,springboot对应的版本是2.6.7,nacos使用的是2.0.1。好像SpringCloud2020.0.1.0之后版本不使用netflix了,所以我们不用Ribbon来实现负载均衡。

我查了好多,都说是没有加负载均衡,然而在我的启动类中早就加了

@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(OrderServiceApplication.class, args);
    }

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

RestTemplate上方加@LoadBalanced注解,仍然报错。

最后终于找到了解决方法。在pom中添加依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

然后依旧RestTemplate上方加@LoadBalanced注解,就可以了。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐