使用guava RateLimiter限流

使用guava RateLimiter限流

    场景:第三方api调用时,避免第三方服务因并发调用数过高挂掉

下面测试例子



private static final RateLimiter rateLimiter =RateLimiter.create(3.0);

public static void main(String[] args) {

for (int i =0; i <30; i++) {

new Thread(() -> {

// System.out.println(currentThread().getName() + "我开始执行了");

      System.out.println(send(currentThread().getName()));

}).start();

}

}

public static String send(String message) {

rateLimiter.acquire();

return sendd(message);

}

public static String sendd(String message) {

return "发送消息:{" + message +"}成功!" +DateUtil.getNow();

}

你可能感兴趣的:(使用guava RateLimiter限流)