Forest介绍

╰+攻爆jí腚メ 2022-09-11 03:22 119阅读 0赞

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

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

想尝试使用新的框架
满足简单好用的需求
源码简单不复杂(因为完成这个工作其实就是一个代理的事)
GitHub上处于比较活跃的状态,并且有人维护
最好国人写的,看注释方便
基于以上理由,最后选中了这个框架,这个框架除了为我的工作提效,更多的是想阅读他的源码,进行学习,因为在比较早之前,我就有过想写类似这样的工具,所以也是一举两得。
这个框架帮助了我能够快速的实现接入第三方API,并且只对我关心的部分进行配置即可。
这个框架能帮你做什么
使用过feign的同学应该都能够很好的理解,Forest本质上就是一个HTTP Client,不同于我们平时自己写代码封装的Http Client,他已经为你做好了封装,我们要做的就是进行个性化配置,调整好我们需要关注的参数即可,比如请求超时时间、连接超时时间…等等,下面引用官网的配置

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

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

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

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

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

发表评论

表情:
评论列表 (有 0 条评论,119人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Forest介绍

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

    相关 Hough forest编译问题

    Hough Forest链接老出错,尽管已经把opencv的库安装好了,依然出现undefined reference问题。根据经验做了如下试验:由于我在编译opencv的时候

    相关 Random Forest算法简介

    转自JoinQuant量化课堂 一、相关概念 分类器:分类器就是给定一个样本的数据,判定这个样本属于哪个类别的算法。例如在股票涨跌预测中,我们认为前一天的交易量和收盘价对