SpringCloud学习之整合RestTemplate和Ribbon


单独使用RestTemplate调用微服务时,需要明确微服务的IP和服务端口,无法实现Feign使用微服务名称进行调用服务的功能。Ribbon可以实现负载均衡的功能,可以通过微服务名称分配一个可用的服务给RestTemplate调用。因此整合RestTemplate和Ribbon后也可以实现以微服务名称调用服务的功能。整合直接在 SpringCloud学习之RestTemplateSpringCloud学习之Feign服务调用的基础上进行修改。

Service-Consumer添加Ribbon依赖

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-ribbon -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-ribbon</artifactId>
            <version>1.4.0.RELEASE</version>
        </dependency>

修改Service-Consumer的RestTemplateConfig

@LoadBalanced:该注解可以实现Ribbon和RestTemplate的结合,实现负载均衡的功能

 @Bean
 @LoadBalanced
 public RestTemplate restTemplate(){
        builder.setConnectTimeout(20*1000)
                .setReadTimeout(60*1000);
        return builder.build();
 }

修改Service-Consumer的UserService

return restTemplate.getForObject("http://localhost:8082/user/selectAll",String.class);换为return restTemplate.getForObject("http://service-provider/user/selectAll",String.class);实现了通过微服务名称调用服务

public String selectAll(){
        //return restTemplate.getForObject("http://localhost:8082/user/selectAll",String.class);
        return restTemplate.getForObject("http://service-provider/user/selectAll",String.class);
 }

微服务调用返回结果不变
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值