笔记
文章平均质量分 50
Root0624
github地址:https://github.com/zpg0624
简书地址:https://www.jianshu.com/u/bee2ff3e5c4c
职业:小码畜
展开
-
【java笔记】记一次线上redis之key冲突问题
发现问题最近在日志监控平台观察发现,有个服务关于Redis的操作频繁抛出如下异常:WRONGTYPE Operation against a key holding the wrong kind of valueredis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value at redis.clients.jedis.Protoco原创 2021-08-10 10:48:14 · 776 阅读 · 0 评论 -
【java笔记】记一次线上redis之lettuce客户端创建异常问题
导读目前线上报错如下:ERROR [io.netty.util.ResourceLeakDetector 317] - LEAK: HashedWheelTimer.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information.Recent access records: Created at:原创 2021-08-04 15:29:23 · 4428 阅读 · 0 评论 -
【java笔记】记一次jdk1.8中List方法removeIf遇到的坑
导读经常遇到两个List集合,需要排除其中一个集合中存在的某些元素,比如集合A=【1,2,3,5】,集合B = 【2,3】,如需要排除A在B集合中存在的元素,那么集合结果是【1,5】。适用场景:比如集合A的分类是某个用户的所有分类,集合B是黑名单分类,那么这时候就需要排除B集合中的分类。传统方式 List<Integer> as = Arrays.asList(1, 2, 3, 5); List<Integer> bs = Arrays.asLi原创 2021-07-14 20:09:02 · 2378 阅读 · 0 评论 -
【java笔记】记一次spring项目中重定向请求路径
背景最近项目部署遇到这样一个问题:paas平台部署项目,健康检查接口固定路径为:/actuator/health,但该项目为每个请求路径加上全局的前缀,如:/api/actuator/health,所以paas平台规范不通过导致部署失败,可能很多人会想到,直接去掉全局/api 即可,但是否想过该项目很多前端页面、第三方平台已经都对接了该项目的接口,如去掉全局前缀,那么势必需要所有调用链头部请求也做修改,时间、成本都比较大,所以是否有一种方式请求的原始路径保持不变,重定向到新路径。修改过程先去掉原创 2021-07-13 14:29:29 · 433 阅读 · 0 评论 -
【java基础】Comparable与Comparator接口
背景在使用Collections#sort方法对集合进行排序的时候可能并不是很清楚到底是默认的排序规则、自定义排序规则、自定义排序器等等,那么Comparable与Comparator接口到底是有什么区别?该如何使用?Comparable接口(内部比较器)1、comparable接口位于java.lang包下,并且很多基本类型的包装类实现了该接口,比如:String,Integer,Double等,当我们使用集合排序的时候,如果集合内元素对象已经实现了Comparable接口,那么集合内部会根据该对象原创 2021-05-24 15:04:06 · 237 阅读 · 0 评论 -
【笔记】guava之RateLimiter限流算法
1、漏桶算法请求进入漏桶里,漏桶以一定速度响应,请求速度过大直接溢出,拒绝服务。1.png2、令牌桶算法请求获取token,直到没有token可拿,阻塞或者拒绝服务。2.png3、RateLimiter工具类之令牌桶算法配置10个令牌测试2.png boolean try...原创 2019-04-15 18:29:27 · 572 阅读 · 0 评论 -
【java基础】强引用、软引用、弱引用、虚引用
jdk1.2之前,每个对象在堆中都有一个引用计数属性,引用新增1次则计数加1,引用每释放一次则计数减一,判断对象是否可以回收的条件是对象是否可达状态;如果可达则表示对象不可回收,如果不可达就是可以回收状态;jdk1.2之后,为了更好的控制堆中对象的生命周期,将对象分成了强引用、软引用、弱引用以及虚引用。一、概念1、强引用: 垃圾回收器绝对不会回收强引用,即使内存不足,宁愿抛出outOfMemoryError;Object object = new Object();除非主动将对象设置为null(全原创 2020-11-27 18:07:28 · 127 阅读 · 0 评论 -
【笔记】SpringBoot接口接收参数是Date类型处理方式
背景最近编写接口测试过程中发现,如果后台接收字段类型是Date类型,那么前台直接传字符串类型会直接报如下错误:org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2020-07-08 16:00:00": not a valid representation (原创 2020-07-08 18:13:50 · 5471 阅读 · 1 评论 -
【笔记】IDEA项目实现热部署方式
背景在使用IDEA开发springboot 项目过程中,难免出现因为启动项目后需对项目进行修改,然后需要重新启动项目实现更新,那么如果能够实现热部署既能方便开发人员也能快速实现项目开发。网上查了很多文章,自己现在总结一下实现步骤,本人亲测有效。热部署1、将项目设置成自动编译状态2、设置registry,设置如下三项,快捷键是:Ctr+shift+Alt+/3、设置启动配置项4、如...原创 2019-12-20 18:02:14 · 207 阅读 · 0 评论 -
【笔记】需求分析步骤
1、该需求的目的是什么? 能帮助理解和辨别需求真伪;2、该需求的使用场景是什么? 只有明白这个原因才能搞清楚什么人使用该功能,才能设计好该功能;3、该需求是否会衍生出新场景? 弄清楚这个原因能设计出后期扩展性强的功能,也能帮助理解和抓住需求的本质;4、技术层面如何看待这个需求? 和技术负责人沟通,看技术如何考虑需求,从而和技术达成共识,同时也为后续的开发工作做好铺垫,打...原创 2019-12-12 18:23:55 · 227 阅读 · 0 评论 -
【笔记】几种限流算法理论
1、限流作用;当API访问激增时,导致接口占用过多服务器资源,甚至导致服务器宕机限流:当接口请求数100次/s,多余的丢弃掉或者响应失败;单节点仅能保护好自身的请求,限流:1、应对热点业务带来突发请求;2、外部的恶意请求;3、突发BUG导致的恶意请求2、几种常见的限流算法1、固定窗口计数器算法:划分多个时间窗口,当请求到达请求数加一,如请求数量到达限制数量,则所有多余请求全部...原创 2019-11-13 15:33:50 · 196 阅读 · 0 评论