RestTemplate ---模块间的通信

本文介绍了在微服务架构中,服务间调用的三种主要方式:直接使用RestTemplate、通过LoadBalancerClient获取应用名再调用,以及利用@LoadBalanced注解简化调用过程。每种方式均有其特点,第三种方式更利于实现负载均衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的负载均衡
 

 

转载于:https://www.cnblogs.com/JTrun/p/11108365.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值