ESB流控分析 | 宁静致远

ESB流控分析

正在加载一言...


最近有被问到现在产品的流控实现机制,之前知道得并不详细,这次准备翻翻代码,看看到底是如何实现的。下面就一探它的庐山正面目。

0.简介


流控是可以一起部署或者分机器部署的,故可分为本地流控和流控服务器,可以通过开关决定使用哪个。在交易进来后,会去申请流控,如果超过设置的流控阈值就会报错,拒绝交易,达到流量控制的目的。

1.实现逻辑


在适配流程中配置了流控的基础服务,当交易进来后。先检查是否是使用的本地流控,如果不是检查流控服务器是否正常,如果不正常这走本地流控,如果正常则去申请流控,如果申请出现异常也从本地流控走。

流控配置在数据库中存储,在重启时加载。可根据多个维度设置,目前常用的是调用方,交易码。当然也有按照年月日等等维度设置的。根据设置的流控阈值创建相应个数的token放入list的中。

去取流控时根据如下规则取出令牌

  1. 精确查询是否存在 调用方 交易码 配置
  2. 查询 ALL 交易码 配置是否存在
  3. 查询 调用方 ALL 配置是否存在
  4. 查询 ALL ALL 配置是否存在

如果拿不到就表示超出流量控制了。

3.调用脑图


esb脑图


文章作者: 彤爸比
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彤爸比 !
评论
  目录