文档章节

高并发请求下的限流控制

f
 fan1fan
发布于 2019/06/11 11:37
字数 194
阅读 34
收藏 0
import com.google.common.util.concurrent.RateLimiter;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * guava RateLimiter限制速率,采用令牌桶算法来实现
 * 知识扩充点1:Semaphore-控制对资源访问的线程数量;RateLimiter-控制对资源访问的速率,每秒多少个
 * 知识扩充点2:限流算法:漏桶算法、令牌桶算法
 */
public class LimitReq {

    public static void main(String[] args) {

        List<Runnable> requests = new ArrayList<>();
        for(int i = 0 ;i < 10000; i++){
            requests.add(new HttqReq(i));
        }
        ExecutorService executorService = Executors.newCachedThreadPool();
        //速率是每秒100个许可
        RateLimiter rateLimiter = RateLimiter.create(100);
        for(Runnable request : requests){
            //开启限流
            rateLimiter.acquire();
            executorService.submit(request);
        }

    }

    /**
     * 模拟请求的线程
     */
    static class HttqReq implements Runnable{
        int cnt;
        HttqReq(int cnt){
            this.cnt = cnt;
        }
        @Override
        public void run() {
            System.out.println(cnt+"请求");
        }
    }
}
maven pom dependency
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>18.0</version>
</dependency>

 

© 著作权归作者所有

下一篇: nginx配置
f
粉丝 4
博文 4
码字总数 1388
作品 0
广州
私信 提问
加载中

评论(0)

服务流量控制及限流

服务流量控制及限流 青蜂侠2017-07-2821 阅读 服务控制 工作上在开发类似 淘宝开放平台 的点评到综的开放平台,需要针对不同的API做流量控制,后期还需要针对不同属性的服务商(上线状态,部...

青蜂侠
2017/07/28
0
0
老板让你抗住千万级流量,如何做架构设计?

随着互联网的发展,各项软件的客户量日益增多,当客户量达到一定峰值时,当数以万计的流量来临时,程序的顺利运行以及即时响应则显得尤为重要,就像双11那天的淘宝一样。那么,如何设计架构才...

技术小能手
2018/11/23
0
0
Dubbo 的流量防卫兵| Sentinel如何通过限流实现服务的高可用性

在复杂的生产环境下可能部署着成千上万的服务实例,当流量持续不断地涌入,服务之间相互调用频率陡增时,会产生系统负载过高、网络延迟等一系列问题,从而导致某些服务不可用。如果不进行相应...

中间件小哥
2018/08/09
0
0
服务端性能保障之流量并发控制方法

服务端性能保障之流量并发控制方法 7月底最后一个周日,我们品课学院线下性能提升班第二期算是正式开课,零基础的学员不少,有测试管理经验、多年开发或者测试经验的人员也有几位,但是各个都...

郭柏雅
2018/08/01
0
0
控制并发访问的三道屏障: WCF限流(Throttling)体系探秘[上篇]

WCF是一个基于多线程的消息监听、接收和处理框架体系,能够同时应付来自相同或者不同客户端的服务调用请求,并提供完善的同步机制确保状态的一致性。一方面,我们期望WCF服务端能够处理尽可能...

长平狐
2012/09/04
169
0

没有更多内容

加载失败,请刷新页面

加载更多

 企业信息平台的快速搭建,框架如何选?

Web端开发框架如何选 目前,大部分的企业信息集成系统都在web端运行,而搭建框架的选择对一个企业的发展至关重要,不过其最终目的都是要符合企业发展逻辑,助力企业战略的实施。 而在框架的选...

我想造火箭
12分钟前
25
0
安装mysql 实操截图

前言: CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用MariaDB代替了,MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之...

冥焱
17分钟前
41
0
FecMall 多商户分销系统 - 价格公式计算

FecMall Fecbdc 分销价格公式计算 本章详解讲述分销平台的各个价格,以及相应的设置,本章节非常重要,贯穿分销系统的整个流程,请仔细阅读 官网: http://www.fecmall.com/ 业务逻辑设计 系...

FecShop
17分钟前
28
0
Java Web 学习笔记(7)

文件下载 package com.janeroad.servlet;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.......

JaneRoad
21分钟前
41
0
如何在JavaScript中更改span元素的文本

如果我有跨度,请说: <span id="myspan"> hereismytext </span> 如何使用JavaScript将“ hereismytext”更改为“ newtext”? #1楼 对于现代浏览器,您应该使用: document.getElementByI......

技术盛宴
23分钟前
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部