RestTemplate通信的三种方式
1、直接调用
@RequestMapping("/hello")
public String hello(){
RestTemplate restTemplate = new RestTemplate();
String url = "http://localhost:8081/index/hello";
String response = restTemplate.getForObject(url, String.class);
log.info("response is {}", response);
return "hello world, I'm service-demo";
}
缺点:再多台微服务部署的情况下,一般不知道ip和端口
2、使用LoadBalancerClient构建出ip和端口
@Autowired
private LoadBalancerClient loadBalancerClient;
@RequestMapping("/hello")
public String hello(){
RestTemplate restTemplate = new RestTemplate();
ServiceInstance serviceInstance = loadBalancerClient.choose("service-demo"); //服务名
String url = String.format("http://%s:%s", serviceInstance.getHost(), serviceInstance.getPort());
String response