【SpringCloud】微服务间的通信(一)之RestRestTemplate
通信方式SpringCloud微服务之间的通信有2种。RestRestTemplateFeignRestRestTemplate分为3种:第一种:直接方式//1.直接方式RestTemplate template = new RestTemplate();//第二个参数为返回值String msg = temp...
·
通信方式
SpringCloud微服务之间的通信有2种。
- RestRestTemplate
- Feign
RestRestTemplate
分为3种:
第一种:直接方式
//1.直接方式
RestTemplate template = new RestTemplate();
//第二个参数为返回值
String msg = template.getForObject("http://localhost:8080/msg", String.class);
缺点:需要手动写ip地址和端口号
第二种:使用loadBalancerClient获取端口号和ip
@Autowired
private LoadBalancerClient loadBalancerClient;
RestTemplate template = new RestTemplate();
ServiceInstance product = loadBalancerClient.choose("PRODUCT");
String url = String.format("http://%s:%s/msg",product.getHost(),product.getPort());
String msg = template.getForObject(url, String.class);
第三种:使用配置,以注解的方式进行服务间的调用
- 配置文件
@Component
public class LoadConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
- 注入:
@Autowired
private RestTemplate restTemplate;
//第三种方式,通过配置文件的方式
String msg = restTemplate.getForObject("http://PRODUCT/msg", String.class);
return msg;
第三种方式更加的简单
当多台服务器启动的时候,可能会产生负载均衡
的问题。
好的爱情是你通过一个人看到整个世界,坏的爱情是为了一个人而舍弃世界。
更多推荐
已为社区贡献3条内容
所有评论(0)