Feign功能详解、使用步骤、代码案例
Feign是Netflix开发的声明式,模板化的HTTP客户端,简化了HTTP的远程服务的开发。Feign是在RestTemplate和Ribbon的基础上进一步封装,使用RestTemplate实现Http调用,使用Ribbon实现负载均衡。我们可以看成 Feign = RestTemplate+Ribbon
·
简介:Feign是Netflix开发的声明式,模板化的HTTP客户端,简化了HTTP的远程服务的开发。Feign是在RestTemplate和Ribbon的基础上进一步封装,使用RestTemplate实现Http调用,使用Ribbon实现负载均衡。我们可以看成 Feign = RestTemplate+Ribbon
目录
1、Feign替代RestTemplate
1.1 Feign的使用步骤
图 1.1-1 Feign的使用步骤 |
---|
步骤一 步骤二 |
上图中展示的是Feign的调用步骤,相较于RestTemplate法更加的方便,代码更简洁。 |
2、自定义配置
2.1 Feign部分自定义配置
图 2.1-1 部分自定义配置 |
---|
上图中展示的是Feign运行的配置 |
2.2 修改Feign自定义配置
2.2.1 方式一
图 2.2.1-1 修改配置文件 |
---|
上图中展示的就是修改Feign自定义配置——日志配置的方法 |
2.2.2 方式二
图 2.2.2-1 修改配置文件 |
---|
上图中展示的就是修改Feign自定义配置——日志配置的方法 |
3、Feign性能优化
3.1 Feign性能优化原理
图 3.1-1 Feign性能优化原理 |
---|
上图中展示的Feign性能优化的原因,即默认情况下Feign底层不支持连接池,所以在发送请求时性能会受到影响,这里通过改变底层实现达到支持连接池的目的 |
3.2 实现Apache HttpClient
图 3.2-1 实现Apache HttpClient |
---|
上图中展示的是改变Feign底层,实现Apache HttpClient,从而让微服务连接支持连接池,提高性能 |
4、Feign最佳实践
4.1 方式一(继承)
图 4.1-1 方式一(继承) |
---|
上图中展示的是通过继承的方式实现统一接口: 即将微服务中的 FeignClient 定义的接口方法和被访问的提供者 Controller 中的方法统一一个标准 |
4.2 方式二(抽取)
图 4.1 方式一(抽取) |
---|
上图中展示的是通过抽取的方式实现统一接口,不好的一点就是在抽取出来的独立模块中集合了大量的函数,当消费者引用的有许多的函数使用不上的,所以产生了代码冗余,但是这里还是建议使用方式二作为标准。 |
4.2.1 方式二(抽取)案例
图 4.2.1-1 (抽取)案例步骤一 |
---|
实现最佳实践方式二的步骤如下:
|
上图展示的便是详细步骤,按照这样操作就可实现模块的抽取 |
4.3 Feign的包扫描
4.3-1 Feign的包扫描两种方式 |
---|
这里还是建议使用方式二,因为这样不会有代码冗余 |
5、总结
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)