一、它们都可以用来调用远程服务。
二、
1、RestTemplate可以直接调用远程服务
@GetMapping("/consumer/doRest1")
public String doRest1(){
//远端服务的url地址
String url="http://localhost:8081/provider/echo/{msg}";
return restTemplate.getForObject(url,
String.class,serverPort);
}
2、RestTemplate也可以用负载均衡的方式调用远程服务
1)使用loadBalancerClient这个API
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
@GetMapping("/consumer/doRest2")
public String doRest2(){
//从nacos中动态获取服务列表,并基于内置负载均衡算法获取服务实例
//1)基于服务名(这个名字是nacos注册中心中的一个服务名)获取服务实例
ServiceInstance serviceInstance =
loadBalancerClient.choose("provider");
//2)基于服务实例构建远端服务url
String url="http://%s:%s/provider/echo/{msg}";
String ip=serviceInstance.getHost();
int port