![138bad1ecde6a8b8eb85579946df1858.png](https://img-blog.csdnimg.cn/img_convert/138bad1ecde6a8b8eb85579946df1858.png)
目前在做限流相关的需求,有这么一个限流策略,和用户相关,当系统发生故障时,允许一个非核心接口按照用户的百分比进行限流,如果完全按照UUID进行hash,那么每次都是限制同一批的用户,如果在UUID的基础上加上当天的日期,那么就可以有效的避免这个问题。
所以在这个需求中,每次请求都需要拿到当前的日期,不过精确到天即可。
嗖~的一下,完成了如下代码
Calendar calendar = Calendar.getInstance();String time = "" + calendar.get(Calendar.YEAR) + calendar.get(Calendar.MONTH) +calendar.get(Calendar.DAY_OF_MONTH);
很简单是不是,不过写完之后,很快就被业务同学diss了,Calendar性能太差了,在QPS很高的情况下,会使接口的999线劣化。
![e21bd0d3af20c9f22dd59c116569ecb7.png](https://img-blog.csdnimg.cn/img_convert/e21bd0d3af20c9f22dd59c116569ecb7.png)
QPS高的业务真是惹不起... (丢)