亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

SpringMVC 限流的示例代碼

2024-07-13 10:13:24
字體:
來源:轉載
供稿:網友

在使用SpringBoot做接口訪問如何做接口的限流,這里我們可以使用google的Guava包來實現,當然我們也可以自己實現限流,Guava中的限流是久經考驗的我們沒必需重新再去寫一個,如果想了解限流原理的同學可以自己查閱一下相關的資料,本文不作過來說明噢。

使用說明

在項目中引入Guava相關包

http://mvnrepository.com/artifact/com.google.guava/guava/21.0

maven項目

<!-- https://mvnrepository.com/artifact/com.google.guava/guava --><dependency>  <groupId>com.google.guava</groupId>  <artifactId>guava</artifactId>  <version>21.0</version></dependency>

gradle項目

// https://mvnrepository.com/artifact/com.google.guava/guavacompile group: 'com.google.guava', name: 'guava', version: '21.0'

寫一個SpringMVC的攔截器

SmoothBurstyInterceptor.java

import com.google.common.util.concurrent.RateLimiter;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.util.concurrent.TimeUnit;public class SmoothBurstyInterceptor extends HandlerInterceptorAdapter {  public enum LimitType {    DROP,//丟棄    WAIT //等待  }  /**   * 限流器   */  private RateLimiter limiter;  /**   * 限流方式   */  private LimitType limitType = LimitType.DROP;  public SmoothBurstyInterceptor() {    this.limiter = RateLimiter.create(10);  }  /**   * @param tps    限流量 (每秒處理量)   * @param limitType 限流類型:等待/丟棄(達到限流量)   */  public SmoothBurstyInterceptor(int tps, SmoothBurstyInterceptor.LimitType limitType) {    this.limiter = RateLimiter.create(tps);    this.limitType = limitType;  }  /**   * @param permitsPerSecond 每秒新增的令牌數   * @param limitType 限流類型:等待/丟棄(達到限流量)   */  public SmoothBurstyInterceptor(double permitsPerSecond, SmoothBurstyInterceptor.LimitType limitType) {    this.limiter = RateLimiter.create(permitsPerSecond, 1000, TimeUnit.MILLISECONDS);    this.limitType = limitType;  }  @Override  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {    if (limitType.equals(LimitType.DROP)) {      if (limiter.tryAcquire()) {        return super.preHandle(request, response, handler);      }    } else {      limiter.acquire();      return super.preHandle(request, response, handler);    }    throw new Exception("網絡異常!");//達到限流后,往頁面提示的錯誤信息。  }  @Override  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {    super.postHandle(request, response, handler, modelAndView);  }  @Override  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {    super.afterCompletion(request, response, handler, ex);  }  public RateLimiter getLimiter() {    return limiter;  }  public void setLimiter(RateLimiter limiter) {    this.limiter = limiter;  }}

SpringMVC攔截配置

WebConfig.java

@Componentpublic class WebConfig extends WebMvcConfigurerAdapter {  @Override  public void addInterceptors(InterceptorRegistry registry) {    // 多個攔截器組成一個攔截器鏈    registry.addInterceptor(new SmoothBurstyInterceptor(100, SmoothBurstyInterceptor.LimitType.DROP)).addPathPatterns("/**");    //限流可配置為SmoothBurstyInterceptor.LimitType.DROP丟棄請求或者SmoothBurstyInterceptor.LimitType.WAIT等待,100為每秒的速率    super.addInterceptors(registry);  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。

 

注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本久久久久久久久| 亚洲欧美激情精品一区二区| 欧美超级免费视 在线| 亚洲丁香久久久| 欧美激情aaaa| 国产亚洲精品高潮| 亚洲精品v欧美精品v日韩精品| 欧美国产在线电影| 九九精品在线观看| 日韩电影免费观看在线| 国产日本欧美在线观看| 奇米4444一区二区三区| 色噜噜久久综合伊人一本| 国产高清视频一区三区| 国产精品久久久久高潮| 精品国产一区久久久| 久久免费国产精品1| 免费91麻豆精品国产自产在线观看| 久久91精品国产| 91丝袜美腿美女视频网站| 日韩av在线天堂网| 久久久av亚洲男天堂| 亚洲精品一区在线观看香蕉| 久久成人av网站| 欧美激情精品久久久久| 国产精品久久电影观看| 亚洲综合第一页| 国产精国产精品| 久久亚洲国产精品成人av秋霞| 日韩精品极品视频| 大伊人狠狠躁夜夜躁av一区| 欧美丝袜第一区| 国产成人精品av在线| 亚洲精品国精品久久99热一| 中文字幕精品久久| 综合欧美国产视频二区| 91在线精品视频| 日韩在线精品一区| 欧美疯狂性受xxxxx另类| 亚洲精品电影网在线观看| 国产高清在线不卡| 亚洲品质视频自拍网| 日韩精品中文字幕在线观看| 97视频在线观看免费高清完整版在线观看| 92版电视剧仙鹤神针在线观看| 国产精品久久久久久久久久99| 精品一区二区三区电影| 26uuu另类亚洲欧美日本老年| 欧美日韩在线影院| 欧美激情中文字幕在线| 欧美裸体xxxx极品少妇| 国产精品一区久久久| 精品精品国产国产自在线| 日韩精品视频在线观看网址| 97久久精品视频| 欧美亚洲在线播放| 国产99视频精品免视看7| 成年无码av片在线| 丰满岳妇乱一区二区三区| 国产精品美女免费视频| 亚洲国产黄色片| 成人福利网站在线观看| 97热在线精品视频在线观看| 久久九九热免费视频| 成人伊人精品色xxxx视频| 亚洲成年人在线| 久热精品视频在线免费观看| 亚洲一区二区福利| 国产精品小说在线| 亚洲亚裔videos黑人hd| 91av在线网站| 成人免费大片黄在线播放| 国产一区二区三区在线免费观看| 韩国精品久久久999| 7m精品福利视频导航| 国产一区二区黑人欧美xxxx| 91久久久久久| 久久久久久久一区二区三区| 91po在线观看91精品国产性色| 国产亚洲精品久久久久久777| 亚洲精品美女久久久久| 欧美日韩黄色大片| 中文字幕欧美国内| 国产啪精品视频网站| 日韩电影大全免费观看2023年上| 欧美影院成年免费版| 国产精品视频99| 欧美夫妻性生活视频| 97视频免费在线观看| 国产一区二区三区欧美| 亚洲高清久久网| www.日韩不卡电影av| 久久亚洲精品一区| 精品国产依人香蕉在线精品| 欧美在线视频观看免费网站| 国产成人一区三区| 久久99精品国产99久久6尤物| 91久久精品视频| 26uuu久久噜噜噜噜| 久久精品人人爽| 亚洲精品在线91| 亚洲欧美综合精品久久成人| 久久九九精品99国产精品| 国产一区二区日韩精品欧美精品| 色偷偷综合社区| 欧美视频在线观看免费网址| 日韩大陆毛片av| 少妇久久久久久| 欧美成人激情视频免费观看| 一区二区三区视频免费在线观看| 久久久中精品2020中文| 51精品在线观看| 欧美黄网免费在线观看| 欧美日韩国产二区| 亚洲韩国青草视频| 国产精品中文久久久久久久| 欧美小视频在线| 亚洲国产精品yw在线观看| 国产精品久久久久影院日本| 日韩亚洲欧美中文高清在线| 亚洲xxxx18| 亚洲精品久久久一区二区三区| 国产一区二区欧美日韩| 日韩精品免费一线在线观看| 成人国产精品免费视频| 欧美肥老太性生活视频| 亚洲成人在线视频播放| 亚洲人成在线电影| 日韩精品在线电影| 中文字幕亚洲在线| 久久久久中文字幕2018| 欧美黑人一区二区三区| 91色p视频在线| 亚洲成人黄色在线| 成人激情av在线| 久久久久久久久久国产精品| 欧美丰满老妇厨房牲生活| 亚洲免费伊人电影在线观看av| 久久最新资源网| 久久成人国产精品| 欧美在线视频观看| 一本久久综合亚洲鲁鲁| 日韩精品在线免费| 国产在线观看一区二区三区| 久久在精品线影院精品国产| 2018日韩中文字幕| 中文字幕国产精品久久| 91爱视频在线| 亚洲色图综合网| 欧美视频在线免费| 91精品视频网站| 国产欧美在线观看| 亚洲人成电影网站色…| 欧美日韩国产精品一区二区不卡中文| 精品亚洲va在线va天堂资源站| 欧美高清在线观看| 97精品久久久中文字幕免费| 日韩av在线最新| 久久精视频免费在线久久完整在线看| 国产精品日日做人人爱| 一区二区三区美女xx视频| 亚洲成色www8888| 久热精品视频在线观看| 久久av资源网站|