環(huán)境:
名稱 | 版本 |
springBoot | 3.0.3 |
springCloud | 2022.0.1 |
springCloudAlibaba | 2022.0.0.0-RC1 |
nacos客戶端 | 2.2.0 |
nacos中服務(wù)已經(jīng)注冊成功
?并且使用RestTemplate進行了負載均衡,加入了@LoadBalanced注解,在使用服務(wù)名進行訪問時出現(xiàn)以下錯誤
"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\"
?發(fā)現(xiàn)nacos并不能通過服務(wù)名解析出對應(yīng)的服務(wù)地址及端口。
RestTemplate代碼:
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
服務(wù)調(diào)用代碼段:
@RestController
@Slf4j
public class LoginController {
//使用ip+端口號進行訪問
// public static final String USER_URL="http://localhost:8088";
//使用服務(wù)名進行訪問
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);
}
}
經(jīng)研究發(fā)現(xiàn)2022.0.1版springCloud中的@LoadBalanced注解,需要引入spring Cloud Loadbalancer相關(guān)依賴才能產(chǎn)生作用
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<!-- <version>版本號</version>-->
</dependency>
在父工程中已經(jīng)引入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相關(guān)依賴后再次進行服務(wù)名調(diào)用,返回數(shù)據(jù),調(diào)用成功。
文章來源:http://www.zghlxwxcb.cn/news/detail-419076.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-419076.html
到了這里,關(guān)于nacos注冊中心服務(wù)注冊后,使用服務(wù)名無法訪問,使用ip+端口號可以訪問的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!