美文网首页工作生活
springcloud服务调用之RestTemplate,Hys

springcloud服务调用之RestTemplate,Hys

作者: 紫菜_5eac | 来源:发表于2019-07-03 13:46 被阅读0次

Spring提供了一个RestTemplate模板工具类,对基于Http的客户端进行了封装,并且实现了对象与json的序列化和反序列化,非常方便。RestTemplate并没有限定Http的客户端类型,而是进行了抽象,目前常用的3种都有支持:

- HttpClient

- OkHttp

- JDK原生的URLConnection(默认的)

在启动类中配置

@SpringBootApplication

@EnableDiscoverClient

public class UserConsumerDemoApplication{

@Bean

@LoadBanlanced

public RestTemplate restTemplate(){

return new RestTemplate();

}

public static void main(String[] args){

SpringApplication.run(UserConsumerDemoApplication.class);

}

}

通过调用服务名称调用

@Service

public class UserService{

@Autowired

private RestTemplate restTemplate;

public User queryUserById(Long id){

//地址直接写服务名称即可

String baseUrl = "http://user-service/user/";

User user = restTemplate.getForObject(baseUrl+id,User.class);

return user;

}

}

Ribbon默认的负载均衡策略是简单的轮询,在刚才的源码中我们看到拦截中是使用RibbonLoadBalanceClient来进行负载均衡的

fallback

引入Hystrix依赖

<dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>

</dependency>

调用方法名上加@HystrixCommand(fallback="queryUserByIdFallback")

queryUserByIdFallback方法返回值,参数与调动方法一样,通用时不写参数。

相关文章

网友评论

    本文标题:springcloud服务调用之RestTemplate,Hys

    本文链接:https://www.haomeiwen.com/subject/jifqhctx.html