
guava
JIESA
这个作者很懒,什么都没留下…
展开
-
Guava 中的 ListenableFuture
前几天看hdfs QJM的代码,里面看到一个ListenableFuture,说实话对于Java,目前我还只是通过看代码,遇到没见过的再去查的方式,也着实是没有时间和精力再去通篇研读诸如《thinking in Java》这样的大砖块了,现在这样的方式,目前来说应该是够用了。重点还是放在系统和业务上,语言本身本不应该成为障碍。言归正传,回到ListenableFuture, 在网上看了一下相关的资转载 2016-08-23 17:41:30 · 710 阅读 · 0 评论 -
聊聊高并发系统之限流特技
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限转载 2016-09-07 17:42:52 · 1589 阅读 · 0 评论 -
Guava官方文档-RateLimiter类
RateLimiter 从概念上来讲,速率限制器会在可配置的速率下分配许可证。如果必要的话,每个acquire() 会阻塞当前线程直到许可证可用后获取该许可证。一旦获取到许可证,不需要再释放许可证。校对注:RateLimiter使用的是一种叫令牌桶的流控算法,RateLimiter会按照一定的频率往桶里扔令牌,线程拿到令牌才能执行,比如你希望自己的应用程序QPS不要超过1000,那么Rat转载 2016-09-07 17:44:21 · 1016 阅读 · 0 评论 -
Guava缓存器源码分析——LocalCache
上图为缓存器所涉及的大致类图,与缓存器配置相关的参数都封装进了CacheBuilder中,与缓存器载入数据相关的操作都封装进了CacheLoader中,并将CacheLoader设计为抽象类,数据载入方法由用户自己实现。因此,用户可以有两种方式来创建缓存器: 1、配置完参数后,直接创建 Cache build() build函数内部,通过调用new转载 2017-01-03 18:06:36 · 637 阅读 · 0 评论 -
1.Guava------------Cache使用方法
http://www.cnblogs.com/gongxijun/p/5781108.html 简单从这几个方面描述一下如何使用Cache,对Cache的各种原理介绍此处不涉及. 1.使用场景 2.如何使用Cache 3.创建方式 4. 如何和Spring搭配使用+---------------------------转载 2017-04-23 21:07:03 · 741 阅读 · 0 评论 -
2.Guava学习笔记:Guava cache
http://www.cnblogs.com/peida/p/Guava_Cache.html缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。 缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数转载 2017-04-23 21:08:31 · 458 阅读 · 0 评论