对于RestTemplate+ribbon已经可以完成服务间的调用,但是依旧存在一些问题
1.每次调用服务都需要写url代码,存在大量的代码冗余
2.服务地址如果修改,维护成本增高
3.使用的时候不够灵活
OpenFeign是一个声明式的伪http客户端,它使得写http客户端变得更加简单。使用Feign,只需要创建一个接口并注解,他便具有可插拔的注解特性,可使用feign注解和jax-rs注解。feign支持可插拔的编码器和解码器。同时feign默认继承了ribbon,默认实现了负载均衡的效果且springcloud为feign添加了springmvc注解的支持。
使用方法:
1.引入openfeign依赖

2.在入口类加入注解开启OpenFeign支持

3.创建一个客户端调用接口

4.使用feignClient客户端对象调用服务

5.访问测试服务
openFeign的参数传递
服务和服务之间的通信,不仅仅是调用,往往在调用过程中还伴随着参数传递。
1.GET方式调用服务传递参数
商品服务端

用户客户端

需要在客户端加上注解@requestparam
也可以在客户端加上该注解
2.POST方式调用服务传递参数
商品服务端

用户客户端

需要在服务端加上注解@requestparam注解
也可以在客户端加上该注解
3.POST方式调用服务传递对象
商品服务端

用户客户端

需要在客户端和服务端同时加上注解@requestbody
openfeign超时设置
默认情况下,该组件在进行服务调用的时候,要求服务提供方处理业务逻辑时间必须在1s内进行返回,如果超时1s没有返回则该组件会直接报错,不会等待服务执行,但是往往在处理复杂业务逻辑是可能会超过1s,因此需要修改该组件的默认服务调用超时时间。

只需要根据业务来改变服务名
如果不想指定来配置服务,可以直接配置默认

openfeign的日志配置
往往在服务调用的时候我们需要详细展示feign的日志,默认feign在调用时并不是最详细日志输出,因此在调试程序的时候应该开启feign的详细日志展示。

本文介绍了如何通过OpenFeign替代RestTemplate进行服务间调用,以减少代码冗余和提高灵活性。OpenFeign提供声明式接口,简化HTTP客户端创建,并内置Ribbon实现负载均衡。讲解了参数传递(GET和POST方式)、超时设置及日志配置等关键点,帮助提升服务调用的便捷性和稳定性。
3725

被折叠的 条评论
为什么被折叠?



