环境:
名称 | 版本 |
springBoot | 3.0.3 |
springCloud | 2022.0.1 |
springCloudAlibaba | 2022.0.0.0-RC1 |
nacos客户端 | 2.2.0 |
nacos中服务已经注册成功
并且使用RestTemplate进行了负载均衡,加入了@LoadBalanced注解,在使用服务名进行访问时出现以下错误
"timestamp": "2023-03-03T03:57:50.409+00:00",
"status": 500,
"error": "Internal Server Error",
"trace": "org.springframework.web.client.ResourceAccessException: I/O error on GET request for \"http://springCloudDemo1-users/api/user/selectOne/13\"
发现nacos并不能通过服务名解析出对应的服务地址及端口。
RestTemplate代码:
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
服务调用代码段:
@RestController
@Slf4j
public class LoginController {
//使用ip+端口号进行访问
// public static final String USER_URL="http://localhost:8088";
//使用服务名进行访问
public static final String USER_URL="http://springCloudDemo1-users";
@Autowired
private RestTemplate restTemplate;
@GetMapping("/api/login/user/{id}")
public UserException selectUser(@PathVariable("id")Integer id){
return restTemplate.getForObject(USER_URL+"/api/user/selectOne/"+id,UserException.class);
}
}
经研究发现2022.0.1版springCloud中的@LoadBalanced注解,需要引入spring Cloud Loadbalancer相关依赖才能产生作用
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<!-- <version>版本号</version>-->
</dependency>
在父工程中已经引入springCloud依赖时,子工程的spring Cloud Loadbalancer是不需要定义version的
<properties>
<java.version>17</java.version>
<spring-cloud.version>2022.0.1</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
加入spring Cloud Loadbalancer相关依赖后再次进行服务名调用,返回数据,调用成功。
文章来源:https://www.toymoban.com/news/detail-419076.html
文章来源地址https://www.toymoban.com/news/detail-419076.html
到了这里,关于nacos注册中心服务注册后,使用服务名无法访问,使用ip+端口号可以访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!