
Guava
云原生AI百宝箱
行万里路,此处相逢,共话云原生A之道。偶逗趣事,明月清风,与君同坐。已出版《Kubernetes:云原生与容器编排实战》,将出版《A大模型原理与场景应用》
展开
-
RateLimiter:限流N个请求,但允许通过了N+个请求
问题描述接口:getUrlDic我设置了限流5个,但是在第一秒的请求了,实际允许通过了9个(或10个),之后正常 RateLimiter使用方式参考:https://blog.youkuaiyun.com/fly910905/article/details/103644950标题问题分析RateLimiter内部有个实现:SmoothBurstySmoothBursty...原创 2019-12-22 14:05:59 · 1708 阅读 · 0 评论 -
RateLimiter:结合Spring Aop应用,以及SmoothBursty原理分析
RateLimiterRateLimiter使用的是一种叫令牌桶的流控算法,RateLimiter会按照一定的频率往桶里扔令牌,线程拿到令牌才能执行,比如你希望自己的应用程序QPS不要超过1000,那么RateLimiter设置1000的速率后,就会每秒往桶里扔1000个令牌。令牌桶算法令牌桶算法概念如下:令牌以固定速率生成; 生成的令牌放入令牌桶中存放,如果令牌桶满了则多余...原创 2019-12-21 16:22:14 · 1523 阅读 · 2 评论 -
从Java Future 到 Guava ListenableFuture实现异步非阻塞调用
前言 随着移动互联网的蓬勃发展,手机App层出不穷,其业务也随之变得错综复杂。针对于开发人员来说,可能之前的一个业务只需要调取一次第三方接口以获取数据,而如今随着需求的增加,该业务需调取多个不同的第三方接口。通常,我们处理方法是让代码同步顺序的去调取这些接口。显然,调取接口数量的增加必然会造成响应时间的增加,势必会对系统性能造成一定影响。 为了保证系统响应迅速,需要寻找一...转载 2018-07-04 08:04:01 · 8053 阅读 · 0 评论 -
Guava基本工具包Base:Null和字符串分割(Splitter)、拼接(Joiner)处理
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。...原创 2018-06-26 16:22:28 · 7339 阅读 · 0 评论 -
Guava:集合操作
可以说 Java Collections Framework 满足了我们大多数情况下使用集合的要求,但是当遇到一些特殊的情况我们的代码会比较冗长,比较容易出错。Guava Collections 可以帮助你的代码更简短精炼,更重要是它增强了代码的可读性。看看 Guava Collections 为我们做了哪些很酷的事情。Immutable Collections: 还在使用 Collections...原创 2018-06-28 16:32:59 · 7603 阅读 · 2 评论 -
Guava Cache:缓存的回收、刷新和统计
适用性 缓存在很多场景下都是相当有用的。例如,计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存。 Guava Cache与ConcurrentMap很相似,但也不完全一样。最基本的区别是ConcurrentMap会一直保存所有添加的元素,直到显式地移除。相对地,Guava Cache为了限制内存占用,通常都设定为自动回收元素...转载 2018-07-09 20:01:45 · 12312 阅读 · 2 评论 -
Java:实现集合分组
1.概述在本教程中,我将说明如何将List拆分为给定大小的多个子列表。对于相对简单的操作,令人惊讶的是在标准Java集合API中没有支持。幸运的是,Guava和Apache Commons Collections都以类似的方式实现了操作2.使用Guava对List进行分区Guava便于将列表分成指定大小的子列表-经由Lists.partition操作:@Testpu...翻译 2019-04-15 10:22:01 · 8195 阅读 · 0 评论