2017-07-17
看了两篇文章:1,2,主题是“基于Redis的分布式锁到底安全吗?”,作者翻译了分布式大神Martin Kleppmann和Redis的作者antirez之间就发生过一场争论,等有时间我也去看看原文,这里先总结一下文章里面的主要观点,以及关于分布式锁和fencing机制的几种实现。
看完后,我觉的Martin大神的几句话让我印象深刻,写在前面:
Marti...
Read More
2017-07-10
最近在研究如何提升MQ的性能,了解到了JVM的停顿,一个一个来,先看看Java的偏向锁带来的性能损耗
Java的锁Java在锁方面做了好多优化,具体的一些介绍,另外,网上也有很多文档,可以自己搜索看看。这里大概摘抄总结下:
锁
优点
缺点
场景
偏向锁
加锁和解锁(非竞争下)基本不需要额外的消耗
如果存在锁竞争,会带来额外的锁撤销的消耗。
适用于...
Read More
2017-07-09
奇妙的思维实验
很简单的一本书,里面讲了一些有意思的思维实验。我对其中一个印象很深,记录一下:
你自身的引力传播进了外太空,绵延至数百亿英里外,即使已经从这个世界消失数百万年,它的旅行仍然继续。从某种程度上,每个人都是永恒的,因为我们都拥有引力场。
引力会不断弱化,但永远不会消失。出生仅8.3分钟,我们的引力就触碰到了太阳表面,5.5小时后,它就抵达了...
Read More
2017-07-09
第三种黑猩猩就是我们-人类,我们与黑猩猩基因的差别只有1.6%.
这本书的好多观点跟《人类简史》差不多,比如:
是语言,让我们进化成了现在的人类;还记得人类简史里面说的,人类语言最大的特别之处就是虚构,我们能虚构出现实不存在的场景,比如,年底涨薪,这让我们今天的工作充满动力
人类的迁移伴随着其他的物种的大灭绝;我觉得,这都可以算到人类的原罪里面了
这本...
Read More
2017-07-04
在写一个统计qps的组件,收获了不少,在上一篇里面有讲。写完之后想压测下看看,统计下每个方法的耗时。以前用过JProfile,但是,JProfle在linux部署比较麻烦,当然,更关键的是这个是收费的;找了半天,发现阿里出了一个TProfiler,看起来简单好用,还免费,试了试确实还不错。
TProfile的详细介绍
使用上还比较简单,主要有下面几步:
启...
Read More
2017-07-04
最近在写一个dubbo组件,用来统计服务的qps等指标,考虑到高并发的场景,就去研究了下Netflix的RollingNumber,收获还不少(也有点杂)。
关于longadder为什么longadder的性能会优于AtomicLong,这里有比较详细的解释,基本有两个原因:
避免多线程冲突。AtomicLong在多线程冲突的时候,会让冲突的线程自旋等待,...
Read More
2017-07-02
一本漫画,一多半是我们每个人都经历过的,稀奇古怪的妄想。
比如,我记得我以前看镜子,就想,如果我足够快,快过镜子里面的像,那个时候,就可以翻到镜子里面,看看那个像到底是什么。
现在经常一个妄想就是,哦,世界快毁灭了,就像2012里面,当黄石公园的超级火山爆发的时候的那个电台主播。我就看着眼前的景象:嗯,我见证了这一刻。
Read More
2017-07-02
以色列:一个国家的诞生(知乎十一点半作品
知乎十一点半作品关于以色列一共有三本书,都很不错。以前看了一遍圣经故事,忘的差不多了,碰巧之下看到了知乎十一点半的关于以色列的三本书,感觉犹太民族建国的过程真牛逼,于是又翻出来圣经故事看了下。。。
我感觉,无数年之后,如果人类还存在,后面的人类回顾整个人类历史的时候;又或者假如人类不幸被灭掉了,我们人类拿出来可以自豪...
Read More
2017-06-28
有个项目发现mq消息堆积,上去看了下,发现日志中出现:
1Caused by: java.lang.OutOfMemoryError: unable to create new native thread
OOM了,立马jstack了一把,发现好多下面的线程:
123456789101112"pool-63-thread-4" prio...
Read More
2017-06-25
负责公司的DUBBO,业务在压一个DUBBO服务的时候,发现RT逐渐拉长,从最开始的4ms,到后面的18ms,业务觉得比较诡异,怀疑是DUBBO的问题,于是就到了我这
现象接到问题,马上到业务压测现场,看了下基本的数据:
刚开始比较正常,压测端rt在3~4ms
压测端rt慢慢拉长,涨到了18~20ms,整体qps降了下来
服务端的性能统计发现,服务端的时间...
Read More