国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

SpringCloud Zuul過濾器和谷歌Gauva實現限流

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

前提:

已經配置Zuul網關

參考:

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

限流方式:

1)nginx層限流

2)網關層限流

1.添加限流過濾器

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 { //每秒產生1000個令牌 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來進行測試 RequestContext context = RequestContext.getCurrentContext(); //tryAcquire達到最大流量時,立刻限流,也可以配置參數 if (!RATE_LIMITER.tryAcquire()) { Map<String, Object> result = new HashMap<>(); result.put('code', 429); result.put('msg', '目前訪問量過大,限流了...'); 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過濾器和谷歌Gauva實現限流

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

標簽: Spring
相關文章:
主站蜘蛛池模板: 欧美精品自拍 | 久久国产精品免费视频 | 欧美日韩在线视频观看 | 国产精彩视频在线 | 香蕉香蕉国产片一级一级毛片 | 亚洲成a人v| 久久91这里精品国产2020 | 三级久久 | 国产精品久久久久9999小说 | 久视频在线观看 | 国产大陆精品另类xxxx | 三级毛片免费看 | 午夜成人免费影院 | 玖草| 99国产欧美久久精品 | 欧美色操 | 久久国产成人福利播放 | 久久一区二区三区免费 | 久久久久久久久久久久久久久久久久 | 亚洲精品久久久久久久777 | 91精品久久一区二区三区 | 精品视频久久久久 | 久久久久久91香蕉国产 | 性欧美高清come | 欧美一级毛片aaa片 欧美一级毛片不卡免费观看 | 亚洲天堂视频在线免费观看 | 免费精品国产日韩热久久 | 成人久久久观看免费毛片 | 国产精品色内内在线播放 | 经典三级久久久久 | 日本高清福利视频在线观看 | 青青青青爽视频在线播放 | 成人在线播放视频 | 手机国产日韩高清免费看片 | 免费看欧美一级特黄a毛片 免费看片aⅴ免费大片 | 欧美午夜精品久久久久久黑人 | 男女性男女刺激大片免费观看 | 大伊香蕉精品视频在线 | 特级毛片免费视频播放 | 欧美成人乱弄视频 | 日本成本人视频 |