Forest研究之:开篇

前言

本篇栏目主要和大家分享我对国内一款开源框架Forest的一些研究学习文章。
如果大家也在对他感兴趣,并且对他底层实现有一定的好奇,希望我的这个栏目文章可以给到大家一些帮助,节省大家的时间,更快的了解到他。

为什么我会想要使用这个开源框架

确实,如果是调用接口,我们实在是有太多的选择了,feign就是一个好的选择,或者用公司内部封装好的代码。为什么还要在自己的项目里引入一个自己不了解的框架呢?
理由很简单,如下:

  • 想尝试使用新的框架
  • 满足简单好用的需求
  • 源码简单不复杂(因为完成这个工作其实就是一个代理的事)
  • GitHub上处于比较活跃的状态,并且有人维护
  • 最好国人写的,看注释方便
    基于以上理由,最后选中了这个框架,这个框架除了为我的工作提效,更多的是想阅读他的源码,进行学习,因为在比较早之前,我就有过想写类似这样的工具,所以也是一举两得。
    这个框架帮助了我能够快速的实现接入第三方API,并且只对我关心的部分进行配置即可。

这个框架能帮你做什么

使用过feign的同学应该都能够很好的理解,Forest本质上就是一个HTTP Client,不同于我们平时自己写代码封装的Http Client,他已经为你做好了封装,我们要做的就是进行个性化配置,调整好我们需要关注的参数即可,比如请求超时时间、连接超时时间…等等,下面引用官网的配置

forest:
  bean-id: config0 # 在spring上下文中bean的id, 默认值为forestConfiguration
  backend: okhttp3 # 后端HTTP API: okhttp3
  max-connections: 1000 # 连接池最大连接数,默认值为500
  max-route-connections: 500 # 每个路由的最大连接数,默认值为500
  timeout: 3000 # 请求超时时间,单位为毫秒, 默认值为3000
  connect-timeout: 3000 # 连接超时时间,单位为毫秒, 默认值为2000
  retry-count: 1 # 请求失败后重试次数,默认为0次不重试
  ssl-protocol: SSLv3 # 单向验证的HTTPS的默认SSL协议,默认为SSLv3
  logEnabled: true # 打开或关闭日志,默认为true
  log-request: true # 打开/关闭Forest请求日志(默认为 true)
  log-response-status: true # 打开/关闭Forest响应状态日志(默认为 true)
  log-response-content: true # 打开/关闭Forest响应内容日志(默认为 false)

通过上面的配置基本已经满足了我们日常的调参需求。
官网的一段话很好地展示了Forest的作用

为什么使用 Forest?

使用 Forest 就像使用类似 Dubbo 那样的 RPC 框架一样,只需要定义接口,调用接口即可,不必关心具体发送 HTTP 请求的细节。同时将 HTTP 请求信息与业务代码解耦,方便您统一管理大量 HTTP 的 URL、Header 等信息。而请求的调用方完全不必在意 HTTP 的具体内容,即使该 HTTP 请求信息发生变更,大多数情况也不需要修改调用发送请求的代码。

与此同时,也不用担心性能和异常问题,因为该框架请求网络的Http Client使用的是我们熟悉的Apache Http Client和okHttp3,这两个都是我们非常熟悉和信赖的客户端。

最后

最后,这个系列的文章,我不会浪费时间写如何使用这个框架,因为官方文档已经写得非常清楚。
接下来的文章,将会分享我是用过程中遇到的一些坑,以及在浏览官方文档时,对于一些功能的实现原理的探究,更多的是去阅读其源码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值