Many Links 0920

1.
https://www.easyice.cn/archives/328
一次 JBD2进程导致磁盘 IO 高的分析解决过程
设计不合理,导致对 zk 执行大量写操作,导致io高。
临时措施:将 zk 的数据路径调整到系统盘,系统盘为 ssd
使用 sysdig+strace 工具
2.
软件架构被高估,清晰简单的设计被低估
https://www.infoq.cn/article/NKLNc0HHtZNaviOX2VdV

3.
几种支持分页的ES查询方式
https://www.jianshu.com/p/3acc365240b6

scroll
sliced scroll
search after

sliced scroll api 除指定上下文保留时间外,还需要指定最大切片和当前切片,最大切片数据一般和shard数一致或者小于shard数,每个切片的scroll操作和scroll api的操作是一致的.

上面两种翻页的方式都无法支撑用户在线高并发操作,search_after提供了一种动态指针的方案,即基于上一页排序值检索下一页实现动态分页:
说白了 search_after 并没有解决随机跳页查询的场景,但是可以支撑多query并发请求;search_after 操作需要指定一个支持排序且值唯一的字段用来做下一页拉取的指针,这种翻页方式也可以通过bool查询的range filter实现。


4.
为 JPA 插上翅膀的 QueryDSL
https://mp.weixin.qq.com/s/WUWSygSUjL4mSoimvzZw3g
5.
用Elasticsearch做Terms聚合计算数据不准的问题
https://www.dongwm.com/post/elasticsearch-terms-agg-is-not-accurate/

关于文档计数错误,在延伸阅读链接 1 中有一个小节专门介绍文档计数错误 (Calculating Document Count Error),其中提到了在返回结果的 aggregations 中包含了doc_count_error_upper_bound(没有在这次聚合中返回、但是可能存在的潜在聚合结果) 和sum_other_doc_count(聚合中没有统计到的文档数)。要注意其中的doc_count_error_upper_bound键名有「上界」的意思,也就是表示在预估的最坏情况下沒有被算进最终结果的值,当然doc_count_error_upper_bound的值越大,最终数据不准确的可能性越大,能确定的是,它的值为 0 表示数据完全正确,但是它不为 0,不代表这次聚合的数据是错误的,大家要记住。

6.
下面几条均来自阮一峰的每周更新:
http://www.ruanyifeng.com/blog/2019/09/weekly-issue-73.html

1)世界最古老的在线摄像头
位于旧金山的 FogCam,是目前最古老的网络直播摄影头,从1994年开始上线,至今已经直播了25个年头。它于8月30日正式关闭。
他们表示关闭摄像头,主要是因为学校里再也找不到地方放置摄像头了。另外,根据维基百科记载,FogCam 网站也是成立最久,而且一直到现在还在运行的网站之一。

2)中国贫穷地区的发展(中文)
https://finance.sina.cn/china/gncj/2019-05-31/detail-ihvhiqay2662671.d.html
Quora 上有人再次针对中国提出尖锐问题:如果中国有那么多钱投资其他国家,为什么不用这些钱发展本国的贫困地区呢?有一个答案内容详实,获赞最高,让围观小伙伴们赞不绝口。
3)
最黑的黑色汽车
宝马发布了 Vantablack 版本的 X6 轿车。Vantablack 是世界最黑的黑色颜料,可以吸收99%以上的光线。这使得宝马 VBX6 是目前世界上最黑的黑色汽车,几乎完全消除了所有反光。理论上,如果一个物体不反射任何光线,本身又不发光,那么视觉上就是一个黑洞。


7.
为什么说 Prometheus 是足以取代 Zabbix 的监控神器?
https://www.infoq.cn/article/275NDkYNZRpcTIL2R8Ms
8.
PageRank、最小生成树:ML开发者应该了解的五种图算法
https://www.jiqizhixin.com/articles/2019-09-09-5
9.
http://www.ruanyifeng.com/blog/2019/10/weekly-issue-76.html
可以用正则表达式检测正则表达式吗?(英文)
https://stackoverflow.com/questions/172303/is-there-a-regular-expression-to-detect-a-valid-regular-expression
傅里叶变换交互式入门
http://www.jezzamon.com/fourier/zh-cn.html
https://dollarsanity.com/amazon-fba-selling-my-products/
我如何一个人实现亚马逊上的100万美元销售额?(英文)一个美国大学生讲述,他如何通过代理中国产品,没有雇佣任何人,一个人在亚马逊上年销售额达到100万美元。
https://bpmn.io/toolkit/bpmn-js/
BPMN-JS,一个在线绘制业务流程图的开源工具
10.
基于 Javassist 和 Javaagent 实现动态切面
https://www.cnblogs.com/chiangchou/p/javassist.html
实战结合的介绍,涉及接口比较全
11.
一个有趣的思考:两个椭圆片能粘合成一个立体吗?
https://spaces.ac.cn/archives/6818
12.
看到提问现代GC为什么会出现 STW,许多人知道但是讲的原因没到点上,这里提一下:
需要Stop The World是因为,比如JAVA,无论是引用计数还是可达性分析,在GC中分析对象的引用关系时,为了保证分析结果的准确性,需要通过停顿所有JVM执行线程,保证引用关系此时不再动态变化.
看起来像全局加锁, 虚拟机编译会标记一些位置,表示当执行到该位置时是可以进行GC的,称之 Safepoint