39-案例分析(一):高性能限流器GuavaRateLimiter.pdfVIP

  • 3
  • 0
  • 约5.78千字
  • 约 10页
  • 2022-11-06 发布于上海
  • 举报

39-案例分析(一):高性能限流器GuavaRateLimiter.pdf

39-案例分析(⼀):⾼性能限流器GuavaRateLimiter 案例分析(⼀):⾼性能限流器Guava RateLimiter 从今天开始,我们就进⼊案例分析模块了。 这个模块我们将分析四个经典的开源框架,看看它们是如何 处理并发问题的,通过这四个案例的学习,相信你会对如何解决并发问题有个更深⼊的认识。 ⾸先我们来看看 Guava RateLimiter 是如何解决⾼并发场景下的限流问题的。Guava 是 Google 开源的 Java 类库,提供了⼀个⼯具类 RateLimiter。我们先来看看 RateLimiter 的使⽤,让你对限流有个感官的印 象。假设我们有⼀个线程池,它每秒只能处理两个任务,如果提交的任务过快,可能导致系统不稳定, 这个时候就需要⽤到限流。 在下⾯的⽰例代码中,我们创建了⼀个流速为 2 个请求 / 秒的限流器,这⾥的流速该怎么理解呢?直观 地看,2 个请求 / 秒指的是每秒最多允许 2 个请求通过限流器,其实在 Guava 中,流速还有更深⼀层的 意思:是⼀种匀速的概念,2 个请求 / 秒等价于 1 个请求 /500 毫秒。 在向线程池提交任务之前,调⽤ acquire() ⽅法就能起到限流的作⽤。通过⽰例代码的执⾏结果,任务提 交到线程池的时间间隔基本上稳定在 500 毫秒。 public class TestRat

文档评论(0)

1亿VIP精品文档

相关文档