引子 先介绍几个概念,同步一下认知: 容灾:是指系统冗余部署,当一处由于意外停止工作,整个系统应用还可以正常工作。 容错:是指在运行中出现错误(如上下游故障或概率性失败)仍可正常提供服务。 可用性:描述的是系统可提供服务的时间长短。用公式来说就是A=MTBF/(MTBF+MTTR),即正常工作时间/ ...
分类:
其他好文 时间:
2020-03-17 14:21:09
阅读次数:
72
mysql最大连接是有限制的 Google限流框架 Guava /** * 订单限流 */ public class OrderRateLimiterFilter extends ZuulFilter { //每秒产生1000个令牌 private static final RateLimiter ...
分类:
其他好文 时间:
2020-03-10 09:13:55
阅读次数:
58
一、使用场景 Guava Cache是本地缓存,当数据被重复查询多次,愿意耗费一些内存空间来减少查询的操作提高查询的速度,就可以使用Guava Cache。 二、使用方式 1.创建 LoadingCache是附带CacheLoader构建而成的缓存实现。创建自己的CacheLoader通常只需要简单 ...
分类:
其他好文 时间:
2020-03-08 20:22:06
阅读次数:
79
转自 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