Java編程guava RateLimiter實例解析
本文主要研究的是Java編程guava RateLimiter的相關(guān)內(nèi)容,具體如下。
場景1 在流量監(jiān)管中的應(yīng)用
約定訪問速率(CAR)是流量監(jiān)管常用技術(shù)之一,可以應(yīng)用在端口進和出方向,一般應(yīng)用在入方向,它的監(jiān)管原理如圖1所示。

a. 按特定的速率向令牌桶投放令牌
b. 根據(jù)預(yù)設(shè)的匹配規(guī)則先對報文進行分類,不符合匹配規(guī)則的報文不需要經(jīng)過令牌桶的處理,直接發(fā)送;
c. 符合匹配規(guī)則的報文,則需要令牌桶進行處理。當(dāng)桶中有足夠的令牌則報文可以被繼續(xù)發(fā)送下去,同時令牌桶中的令牌 量按報文的長度做相應(yīng)的減少;
d. 當(dāng)令牌桶中的令牌不足時,報文將不能被發(fā)送,只有等到桶中生成了新的令牌,報文才可以發(fā)送。這就可以限制報文的流量只能是小于等于令牌生成的速度,達到限制流量的目的。
第二個場景 :用于流量控制,在應(yīng)用領(lǐng)域過載保護。
使用的例子:
public class RateLimiterTest {
public static void main(String[] args) {
final RateLimiter rateLimiter = RateLimiter.create(2.0);
for (int i = 0; i < 100; i++) {
rateLimiter.acquire();
// 每秒打印兩次
System.out.println(i);
}
}
}
總結(jié)
以上就是本文關(guān)于Java編程guava RateLimiter實例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
Java實現(xiàn)過濾掉map集合中key或value為空的值示例
這篇文章主要介紹了Java實現(xiàn)過濾掉map集合中key或value為空的值,涉及java針對map的簡單遍歷、判斷、移除等相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
Java ArrayList 數(shù)組之間相互轉(zhuǎn)換
本文通過代碼示例給大家講解arraylist轉(zhuǎn)化為數(shù)組,然后數(shù)組轉(zhuǎn)化為arraylist的相關(guān)資料,感興趣的朋友一起看看吧2015-11-11
maven-maven使用-P參數(shù)打包不同環(huán)境問題
這篇文章主要介紹了maven-maven使用-P參數(shù)打包不同環(huán)境問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Ehcache簡介_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Ehcache簡介,使用Spring的AOP進行整合,可以靈活的對方法的返回結(jié)果對象進行緩存2017-07-07
Spring注解@Configuration和@Component區(qū)別詳解
@Component和@Configuration都可以作為配置類,之前一直都沒覺得這兩個用起來有什么差別,可能有時程序跑的和自己想的有所區(qū)別也沒注意到,下面這篇文章主要給大家介紹了關(guān)于Spring注解@Configuration和@Component區(qū)別的相關(guān)資料,需要的朋友可以參考下2023-04-04

