错误描述

springclouud使用负载均衡时,同一服务启动多个,其他模块调用时 浏览器出现 4cf2d0a6bf6328f4e8d8c5b168e2e3a.png 控制台报错

[nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: No instances available for userservice] with root cause java.lang.IllegalStateException: No instances available for userservice …

问题解决

检查请求是否正确 String url ="http://userservice/user/"+order.getUserId();

检查yml文件是否将对应文件配置到注册中心

eureka:
  client:
    service-url:  #把自己配置到上去(本身也是一个提供者)
	defaultZone: http://127.0.0.1:10086/eureka

检查启动类是否有负载均衡注解

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

如果前面都正确的话,可以在整体工程的pom中添加thymeleaf依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

总结

这是由于导入其他人项目时,默认环境没有视图解析,于是我们就需要导入spring官方的视图解析器thyleaf。 这时我们再进行访问对应链接,发现成功跳转并进行负载均衡 1693205831883.png