摘要: 本文探讨了两个问题:1.Dubbo协议的设计与解析。2.以Dubbo2.7.5版本为分界线,对比不同版本之间,业务数据返回后,反序列化的操作到底是在独立的Consumer 端线程池里面进行的还是在IO线程里面进行的?经过研究后发现官网上对于【消费端线程池模型】的描述中有一句话不太准确。到底是怎样的,欢迎大家阅读。 阅读全文
posted @ 2020-09-01 12:42 why技术 阅读(1641) 评论(3) 推荐(3) 编辑
摘要: 荒腔走板 大家好,我是 why,欢迎来到我连续周更优质原创文章的第 60 篇。 老规矩,先来一个简短的荒腔走板,给冰冷的技术文注入一丝色彩。 上面这图是我五年前,在学校宿舍拍的。 前几天由于有点事情,打开了多年没有打开的 QQ。然后突然推送了一个“那年今日”发送的动态。 这张图片就是那个动态里面的。 阅读全文
posted @ 2020-08-09 16:00 why技术 阅读(1665) 评论(2) 推荐(3) 编辑
摘要: 这是why的第 59 篇原创文章 荒腔走板 大家好,我是why哥 ,欢迎来到我连续周更优质原创文章的第 59 篇。 上周写了一篇文章,一不小心戳到了大家的爽点,其中一个转载我文章的大号,阅读量居然突破了 10w+,我也是受宠若惊。 但是其实我是一个技术博主来的,偶尔写点生活相关的。所以这篇还是回到技 阅读全文
posted @ 2020-08-02 17:36 why技术 阅读(1580) 评论(0) 推荐(2) 编辑
摘要: 这次的文章从JDK的J.U.C包下的ConcurrentLinkedQueue队列的一个BUG讲起。jetty框架里面的线程池用到了这个队列,导致了内存泄漏。同时通过jconsole、VisualVM、jmc这三个可视化监控工具,让你看见“内存泄漏”的发生。有点意思,大家一起看看。 阅读全文
posted @ 2020-07-12 22:13 why技术 阅读(1205) 评论(0) 推荐(1) 编辑
摘要: 文本分析了Dubbo回声测试功能的实现原理。发现框架在做动态代理的时候神不知鬼不觉的搞了一些事情。使用障眼法,优雅的实现了一些功能,很值得我们学习借鉴。看完之后不由感叹一声:这代码,确实是“骚”。 阅读全文
posted @ 2020-07-07 12:49 why技术 阅读(1141) 评论(0) 推荐(1) 编辑
摘要: 从AtomicLong谈到LongAdder。对于AtomicLong源码的写法抛出了一个问题。希望知道的朋友可以指点一下。对于LongAdder的结构进行分析,感觉不经意间窥探到了高并发的秘密。 阅读全文
posted @ 2020-06-22 12:43 why技术 阅读(1658) 评论(3) 推荐(3) 编辑
摘要: 最近在官网上发现一个JDK 8 的Bug。ConcurrentHashMap使用不当,也会导致死循环。于是研究了一下这个Bug的来龙去脉,整理成本文,分享给大家。另外,这个Bug 在JDK 9 才修复,所以如果你的项目中有使用CHM的computeIfAbsent可要注意一下了哦。 阅读全文
posted @ 2020-06-14 21:41 why技术 阅读(2555) 评论(2) 推荐(4) 编辑
摘要: 使用mybatis逆向工程的时候,delete方法的使用姿势不对,导致表被清空了,在生产上一刷新后发现表里没数据了,一股凉意从脚板心直冲天灵盖。于是开发了一个拦截器,并写下这篇文章记录并分享。 阅读全文
posted @ 2020-06-07 23:49 why技术 阅读(1098) 评论(4) 推荐(5) 编辑
摘要: 2020年5月15日,Dubbo发布2.7.7版本。其中就包含新增了一个最短响应时间的负载均衡策略。至此Dubbo官方支持了五种负载均衡策略了。本文通过2万余字,对每一个策略都进行了详细分析,进行了多版本之间的对比,从对比中看差异,从差异中学思想。通过对比可以了解各个策略在不断解决bug中的演变。 阅读全文
posted @ 2020-05-31 18:45 why技术 阅读(2285) 评论(3) 推荐(7) 编辑
摘要: 最近在看公司项目时发现有的项目mybatis是基于注解开发的,而我个人的习惯是基于xml文件开发。对于mybatis注解开发的原理理解不够,于是翻阅了部分源码,写下此文。主要介绍了mybatis开发的两种形式、三种写法。还有一点瞎思考,介绍了一处骚代码、还有一个坑。 阅读全文
posted @ 2020-05-18 13:19 why技术 阅读(12224) 评论(10) 推荐(16) 编辑