Fegin 的解析
一、Feign
基本概念
Feign 是 Netflix 开发的声明式、模板化的 HTTP 客户端, Feign 可以帮助我们更快捷、优雅地调用 HTTP API。\
Feign 支持多种注解,例如 Feign 自带的注解或者 JAX-RS 注解等。\
Spring Cloud 对 Feign 进行了增强,使 Feign 支持了 Spring MVC 注解,并整合了 Ribbon 和 Eureka,从而让 Feign 的使用更加方便。\
Spring Cloud Feign 是基于 Netflix feign 实现,整合了 Spring Cloud Ribbon 和 Spring Cloud Hystrix,除了提供这两者的强大功能外,还提供了一种声明式的 Web 服务客户端定义的方式。\
Spring Cloud Feign 帮助我们定义和实现依赖服务接口的定义。在 Spring Cloud feign 的实现下,只需要创建一个接口并用注解方式配置它,即可完成服务提供方的接口绑定,简化了在使用 Spring Cloud Ribbon 时自行封装服务调用客户端的开发量。
二、实现服务调用
1、在调用端添加 pom 依赖
在 statistics 微服务中添加
可以删除之前添加的 ribbon 依赖,因为 openfeign 中封装了 ribbon 负载均衡
2、启动类添加注解
3、创建远程调用包和接口
创建 client 包和 UcenterClient 接口
@FeignClient 注解用于指定从哪个服务中调用功能 ,名称与被调用的服务名保持一致。
@GetMapping 注解用于对被调用的微服务进行地址映射。
@PathVariable 注解一定要指定参数名称,否则出错
@Component 注解防止,在其他位置注入 UcenterClient 时 idea 报错
4、调用微服务
修改 DailyService 中的 createStatisticsByDay 方法,调用 client 中的接口
实现
5、Swagger 测试
启动 eureka、ucenter、statistics 三个微服务
在 swagger 中测试
\
三、测试负载均衡
版权声明: 本文为 InfoQ 作者【卢卡多多】的原创文章。
原文链接:【http://xie.infoq.cn/article/c2d1d9cd1a9ccd51279e3e321】。文章转载请联系作者。
评论