转自 https://blog.csdn.net/qq_34231010/article/details/82530368 一、集合工具1.Lists List<Integer> list1 = Lists.newArrayList(0, 2, 5);List<Integer> list2 = Li ...
分类:
其他好文 时间:
2020-03-06 17:28:10
阅读次数:
75
缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。对于那些频繁需要查询比对的热点数据,我们采用使用缓存。 GuavaCache是google出品的内存缓存工具。对于数据量较小的,几条,几十条数据,而且需要加缓存的接口较少,建议使用Google提供的guava Cache, ...
分类:
编程语言 时间:
2020-02-17 00:45:08
阅读次数:
117
有时候方法返回一个列表但是不想调用者改变列表内容。有三种方法可以实现不可变列表,通过调用JDK,Guava以及Apache Commons Collections相关API来实现。 1.JDK @Test public void jdkTest() { List<String> fruitsList ...
分类:
编程语言 时间:
2020-02-12 18:18:14
阅读次数:
95
RateLimiter是guava提供的基于令牌桶算法的实现类,可以非常简单的完成限流特技,并且根据系统的实际情况来调整生成token的速率。通常可应用于抢购限流防止冲垮系统;限制某接口、服务单位时间内的访问量,譬如一些第三方服务会对用户访问量进行限制;限制网速,单位时间内只允许上传下载多少字节等。 ...
分类:
其他好文 时间:
2020-02-12 14:52:44
阅读次数:
193
Guava:来自Google的常用类库 Apache Commons:来自Apache的常用类库 Mockito:主要用于单元测试的mock DBUnit:测试中管理数据库测试数据 Rest Assured:用于Rest API测试 Jackson 2:Json数据的序列化和反序列化 jjwt:Jw ...
分类:
编程语言 时间:
2020-02-10 00:16:53
阅读次数:
107
问题背景 有一个需求,需要进行限流,选择使用的Guava RateLimiter,但是发现在限流方面,还是存在一些问题(单机),特别是当瞬时访问量特别大的时候, 请看下面一个代码,应该输出什么结果? package cn.ganlixin.guava; import com.google.commo ...
分类:
其他好文 时间:
2020-02-09 16:59:12
阅读次数:
63
测试的时候发现项目中的LoadingCache没有刷新,但是明明调用了refresh方法了。后来发现LoadingCache是不支持缓存null值的,如果load回调方法返回null,则在get的时候会抛出异常。 通过几个例子开看这个问题: 所以如果你需要缓存“空”值,推荐的做法是使用Optiona ...
分类:
系统相关 时间:
2020-02-08 11:56:12
阅读次数:
191
Caffeine是一种高性能的缓存库,是基于Java 8的最佳(最优)缓存框架。 Cache(缓存),基于Google Guava,Caffeine提供一个内存缓存,大大改善了设计Guava's cache 和 ConcurrentLinkedHashMap 的体验。 1 LoadingCache< ...
分类:
其他好文 时间:
2020-02-06 10:36:55
阅读次数:
73
有没有遇到过这种情况:网页响应很慢,提交一次表单后发现没反应,然后你就疯狂点击提交按钮(12306就经常被这样怒怼),如果做过防重复提交还好,否则那是什么级别的灾难就不好说了。。。 本文主要是应用 `spring AOP、 Guava Cache` 生成一种本地锁,来达到的防重复提交效果,由于是基于 ...
分类:
编程语言 时间:
2020-02-05 23:36:59
阅读次数:
89
在开发高并发系统时有三把利器用来保护系统:缓存、降级、 限流, 今天我们就谈谈限流 . ...
分类:
编程语言 时间:
2020-02-02 01:05:51
阅读次数:
72