Nacos通过LoadBalanced实现负载均衡远程调用

This commit is contained in:
2023-08-21 20:25:40 +08:00
parent 31acc77362
commit 60512849e8
255 changed files with 263622 additions and 2 deletions

View File

@@ -18,6 +18,15 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>

View File

@@ -23,6 +23,7 @@ public class WebConfiguration {
OAuth2ClientContext context;
@Bean
@LoadBalanced
public OAuth2RestTemplate restTemplate(){
return new OAuth2RestTemplate(new ClientCredentialsResourceDetails(), context);
}

View File

@@ -37,9 +37,9 @@ public class BorrowServiceImpl implements BorrowService {
List<Borrow> borrow = mapper.getBorrowsByUid(uid);
//这里通过调用getForObject来请求其他服务并将结果自动进行封装
//获取User信息
User user = template.getForObject("http://localhost:8101/user/" + uid, User.class);
User user = template.getForObject("http://userservice/user/" + uid, User.class);
//获取每一本书的详细信息
List<Book> bookList = borrow.stream().map(b -> template.getForObject("http://localhost:8201/book/" + b.getBid(), Book.class)).collect(Collectors.toList());
List<Book> bookList = borrow.stream().map(b -> template.getForObject("http://bookservice/book/" + b.getBid(), Book.class)).collect(Collectors.toList());
return new UserBorrowDetail(user, bookList);
}
}