SpringCloud微服务架构(三)Feign

概念

Feigh是一个声明式web服务客户端。它能让开发web服务变得容易。使用Feign需要创建一个接口并注解它。它拥有包括Feign注解和JAX-RS注解的可插拔支持。它还支持可插拔的编码器和解码器。Spring Cloud拥有Spring MVC支持,并使用Spring Web中默认同样的HttpMessageConverters。在使用Feign时,Spring Cloud集成了Ribbon和Eureka来提供负载均衡的HTTP客户端。

Feign的在使用中需要注意的地方

不能直接支持接收对象参数,只能一个一个属性接收。如果必须要接收对象参数,可以变相通过@RequestBody,通过json的表单提交来实现。
对于日期类型支持和json转换间冲突多,还滞后8小时。转为字符串类型,在提供者时,再强制转换为日期,更加方便些。
@PathVariable(“name”) String name 必须写名称“name”,springmvc可以不写。
启动超过1s会报超时,再刷新就可以正常访问,原因在于hystrix断路器的影响,稍差的机器可能会发生这个问题。

调用过程
在这里插入图片描述
首先,提供者provider-user和消费者custorm-feign都注册到Eureka中。用户请求feign中的controller,feign中的controller调用feign定义的接口方法。接口的方法根据注解去找到eureka注册中心中的provider-user地址,然后请求远程provider-user所在服务器的地址,然后调用远程的provider-user提供者的具体服务。提供者响应返回json,json被feign封装传输给“接口”的返回值,“接口”在返回给feign的controller,最终响应给用户。

总结

Feign简化HttpClient开发,封装了JAX-RS和springmvc的注解,学习成本低。Feign是典型的基于接口,基于动态代理技术自动生成代理对象。

代码demo可参考git:https://github.com/a870368162/springcloud-demo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值