首页 > 其他 > 详细

RestTemplate ---模块间的通信

时间:2019-06-30 01:28:39      阅读:104      评论:0      收藏:0      [点我收藏+]

1.第一种方式(直接使用RestTemplate ,和url的纯路径获取不同模块的服务)

RestTemplate restTemplate = new RestTemplate();

String result = restTemplate.getForObject("http://xx", String.class);

缺点,太死板。不能灵活在各个模块间切换

2.第二种方式(通过LoadBalancerClient获取应用名,然后根据应用名获取url,最后根据restTemplate通过url和返回值获得信息) RestTemplate restTemplate = new RestTemplate();

 ServiceInstance serviceInstance = loadBalancerClient.choose("ORDER");
String url = String.format("http://%s:%s", serviceInstance.getHost(), serviceInstance.getPort()+"/get/msg");
String result = restTemplate.getForObject(url,String.class);
return result;

3.
第三种方式(利用注解@loadBalanced,可在restTemplate里使用应用名字 )这其中使用了负载均衡(随机,轮询。。。)
先把RestTemplate注入Bean容器然后
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
 
String result = restTemplate.getForObject("http://ORDER/get/msg",String.class);


ribbon的负载均衡
 

 

RestTemplate ---模块间的通信

原文:https://www.cnblogs.com/JTrun/p/11108365.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!