RestTemplate
对http请求通信的封装,封装了http请求,方便的请求http接口。
Ribbon
ribbon是一个http的负载均衡工具
maven
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
注意要加上starter。
application.yml
order-service:
ribbon:
listOfServers: localhost:8081,localhost:8082
这里的order-service是order程序的application name
listOfServers是2个服务地址,负载均衡
controller
@RestController
public class UserController {
@Autowired
RestTemplate restTemplate;
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
@Autowired
LoadBalancerClient loadBalancerClient;
@GetMapping("/user")
public String user() {
ServiceInstance serviceInstance = loadBalancerClient.choose("order-service");
String url = String.format("http://%s:%s",serviceInstance.getHost(),serviceInstance.getPort()+"/order");
System.out.println(url);
String forObject = restTemplate.getForObject(url, String.class);
return forObject;
}
}
网友评论