限流功能设计
很早以前做过一个限流的功能,设计地很ugly。今天看到Log4j2的限流过滤器设计的非常好,花了一些时间研究感觉很不错,以后可能还会再用,总结一下吧。
首先我们要先聊一下限流功能主要是做什么?其实就是限制某种操作在某段时间内,限制做多少次。
Log4j2的使用了一个 DelayQueue 和一个 ConcurrentLinkedQueue 开发了一个过滤器(burstFilter)比较优雅解决了这个问题。
整体架构如下:
设计核心逻辑如下:
burstFilter初始化辑如下:
相关推荐
jameszgw 2020-06-14
随心而作 2020-03-03
随心而作 2019-11-30
发条戏子 2019-06-17
李晨璐十五期 2015-04-11
李晨璐十五期 2011-04-26
tonybest 2010-11-19
bigname 2019-06-17
tonybest 2010-07-02
tonybest 2010-05-26
anqier 2019-07-01
lizhiyong 2019-07-01
CherrylinORC 2013-07-05
特 2012-10-21
THEEYE 2012-08-15
wangcaipang 2011-09-05
anqier 2019-06-27