色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

SpringCloud Zuul過(guò)濾器和谷歌Gauva實(shí)現(xiàn)限流

瀏覽:4日期:2023-09-16 08:18:28

前提:

已經(jīng)配置Zuul網(wǎng)關(guān)

參考:

https://www.jb51.net/article/182894.htm

限流方式:

1)nginx層限流

2)網(wǎng)關(guān)層限流

1.添加限流過(guò)濾器

import com.alibaba.fastjson.JSON;import com.google.common.util.concurrent.RateLimiter;import com.netflix.zuul.ZuulFilter;import com.netflix.zuul.context.RequestContext;import com.netflix.zuul.exception.ZuulException;import org.apache.commons.lang.StringUtils;import org.springframework.http.HttpStatus;import org.springframework.stereotype.Component;import org.springframework.util.AntPathMatcher;import javax.servlet.http.HttpServletRequest;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.PRE_TYPE;/** * 訂單限流接口 */@Componentpublic class OrderRateLimiterFilter extends ZuulFilter { //每秒產(chǎn)生1000個(gè)令牌 private static final RateLimiter RATE_LIMITER = RateLimiter.create(1000); @Override public String filterType() { return PRE_TYPE; } @Override public int filterOrder() { return -4; } @Override public boolean shouldFilter() { RequestContext context = RequestContext.getCurrentContext(); HttpServletRequest request = context.getRequest(); ///apigateway/order/api/v1/order/test System.out.println(request.getRequestURI()); //http://127.0.0.1:9000/apigateway/order/api/v1/order/test System.out.println(request.getRequestURL()); //限流的接口 List<String> noFIlter = new ArrayList<>(); noFIlter.add('/apigateway/order/**'); AntPathMatcher matcher = new AntPathMatcher(); for (String pattern : noFIlter) {//pattern--/user/** if (StringUtils.isNotEmpty(pattern) && matcher.match(pattern, request.getRequestURI())) {return true; } } return false; } @Override public Object run() throws ZuulException { //可以用JMeter來(lái)進(jìn)行測(cè)試 RequestContext context = RequestContext.getCurrentContext(); //tryAcquire達(dá)到最大流量時(shí),立刻限流,也可以配置參數(shù) if (!RATE_LIMITER.tryAcquire()) { Map<String, Object> result = new HashMap<>(); result.put('code', 429); result.put('msg', '目前訪問(wèn)量過(guò)大,限流了...'); context.setSendZuulResponse(false); context.setResponseStatusCode(HttpStatus.TOO_MANY_REQUESTS.value()); context.setResponseBody(JSON.toJSONString(result)); //解決中文亂碼 context.getResponse().setCharacterEncoding('UTF-8'); context.getResponse().setContentType('text/html;charset=UTF-8'); } return null; }}

令牌桶限流圖解

SpringCloud Zuul過(guò)濾器和谷歌Gauva實(shí)現(xiàn)限流

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 在线天堂视频 | 欧美一级毛片生活片 | 性欧美成人依依影院 | 国产三级做爰在线观看视频 | 日韩视频在线观看 | 国产亚洲男人的天堂在线观看 | 成人精品一区二区久久 | 中文字幕日韩欧美一区二区三区 | 成人美女网 | 熟女毛片 | 国产欧美日韩在线一区二区不卡 | 免费播放aa在线视频成人 | 免费萌白酱国产一区二区三区 | 色天使色婷婷在线影院亚洲 | 一级成人a免费视频 | 亚洲高清国产一线久久 | 国产精品一区久久 | 在线视频一区二区三区 | 天堂免费在线视频 | 99热久久国产精品免费看 | 99视频免费看 | 国产美女做爰免费视频网址 | a毛片免费| 欧美成人老熟妇暴潮毛片 | 国产欧美亚洲三区久在线观看 | 亚洲国产中文字幕 | 国产欧美日韩精品第二区 | 国产综合久久一区二区三区 | 国产高清在线精品一区a | 国产精品高清在线观看93 | 久久综合色88 | 99久在线观看 | 美女视频网站黄色 | 亚洲国产日韩欧美 | 久久精品国产欧美日韩99热 | 女人张开腿让男人添 | 美国一级免费毛片 | 国内成人免费视频 | 欧洲免费无线码二区5 | 国产精品久久久久久久久久影院 | cao在线观看|