摘要:下面列了我读过的一些编程相关的书籍,写了一些对书的印象,都是个人观点。书名后是我个人对书的推荐强烈度打的分(5分满分),都是拍脑袋打的。 我比较习惯读纸质书,买书也比较谨慎,踩的坑少(围笑),分打得可能比较高一些。 操作系统 《Linux内核设计与实现》5分:全书都在讲 Linux 内核的设计思想, 阅读全文
posted @ 2018-01-07 19:55 枕边书 阅读 (1875) 评论 (3) 编辑
摘要:博客目录 阅读全文
posted @ 2017-03-01 19:30 枕边书 阅读 (1468) 评论 (0) 编辑
摘要:前言 工具的进化一直是人类生产力进步的标志,合理使用工具能大大提高我们的工作效率,遇到问题时,合理使用工具更能加快问题排查的进度。这也是我为什么非常喜欢 shell 的原因,它丰富的命令行工具集加管道特性处理起文本数据集来真的精准而优雅,让人迷醉。 但很多时候文本的表现力非常有限,可以说匮乏,表达绝 阅读全文
posted @ 2019-07-17 19:29 枕边书 阅读 (551) 评论 (2) 编辑
摘要:需求 最近工作中碰到一个需求:我们的数据表有多个维度,任意多个维度组合后进行 group by 可能会产生一些”奇妙”的反应,由于不确定怎么组合,就需要将所有的组合都列出来进行尝试。 抽象一下就是从一个集合中取出任意元素,形成唯一的组合。如 [a,b,c] 可组合为 [a]、[b]、[c]、[ab] 阅读全文
posted @ 2019-04-15 19:02 枕边书 阅读 (351) 评论 (0) 编辑
摘要:需求 日常工作中,我们常需要同时在多台服务器上执行同样的命令,如对比日志、检查服务等。这就需要我们有服务器批量操作的能力。 两年前写过一篇文章,shell实现SSH自动登陆 使用 shell 的 expect 命令进行 ssh 登陆,这种方式的灵活性确实非常高,但实现起来比较麻烦,而且单进程阻塞的特 阅读全文
posted @ 2019-04-03 20:14 枕边书 阅读 (380) 评论 (0) 编辑
摘要:由来 最近有同事在用 ab 进行服务压测,到 QPS 瓶颈后怀疑是起压机的问题,来跟我借测试机,于是我就趁机分析了一波起压机可能成为压测瓶颈的可能,除了网络 I/O、机器性能外,还考虑到了网络协议的问题。 当然本文的主角并不是压测,后来分析证明同事果然还是想多了,瓶颈是在服务端。 分析起压机瓶颈的过 阅读全文
posted @ 2019-04-01 18:07 枕边书 阅读 (839) 评论 (3) 编辑
摘要:由来 前些日子小组内安排值班,轮流看顾我们的服务,主要做一些报警邮件处理、Bug 排查、运营 issue 处理的事。工作日还好,无论干什么都要上班的,若是轮到周末,那这一天算是毁了。 不知道是公司网络广了就这样还是网络运维组不给力,网络总有问题,不是这边交换机脱网了就是那边路由器坏了,还偶发地各种超 阅读全文
posted @ 2019-01-22 19:00 枕边书 阅读 (2986) 评论 (12) 编辑
摘要:前言 前不久组内又有一次我比较期待的分享:”Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题(笑)。 我之前了解一些操作系统的概念,主要是毕业后对自己大学四年的荒废比较懊恼,觉得自己有些对不起计算机专业出身 阅读全文
posted @ 2019-01-21 20:21 枕边书 阅读 (1602) 评论 (0) 编辑
摘要:昨天网易云音乐、B站等 APP 都放出了用户的 2018 年度使用报告,在朋友圈掀起了一股年度报告的热潮,我昨天在刷微博时看到”精分君”分享的《年度骂人报告》后,在被笑得眼泪都出来的同时,也在想我是不是也可以出一个《年度代码报告》呢? 转载随意,文章会持续修订,请注明来源地址:https://zhe 阅读全文
posted @ 2019-01-05 12:27 枕边书 阅读 (1628) 评论 (6) 编辑
摘要:对 Debug 的好奇 初学 Java 时,我对 IDEA 的 Debug 非常好奇,不止是它能查看断点的上下文环境,更神奇的是我可以在断点处使用它的 Evaluate 功能直接执行某些命令,进行一些计算或改变当前变量。 刚开始语法不熟经常写错代码,重新打包部署一次代码耗时很长,我就直接面向 Deb 阅读全文
posted @ 2019-01-02 19:08 枕边书 阅读 (3314) 评论 (2) 编辑
摘要:再启 接上文 从应用到内核查接口超时(中),查到是因为 journal 导致 write 系统调用被阻塞进而导致超时后,总感觉证据还不够充分,没有一个完美的交待。而且 leader 还想着让我把问题排查过程分享给同事们,这让我更加不安,担心搞错了方向。 在以往的博客中,我的问题结论总是确定的,如果是 阅读全文
posted @ 2018-12-28 19:49 枕边书 阅读 (272) 评论 (0) 编辑
摘要:应用复现 接着上文 从应用到内核查接口超时(上) 继续排查导致接口超时的原因。 转载随意,文章会持续修订,请注明来源地址:https://zhenbianshu.github.io 。 Jdk 的 native 方法当然不是终点,虽然发现 Jdk、docker、操作系统 Bug 的可能性极小,但再往 阅读全文
posted @ 2018-12-27 19:36 枕边书 阅读 (309) 评论 (0) 编辑
摘要:问题 之前的博文中说过最近在查一个问题,花费了近两个星期,问题算是有了一个小结,是时候总结一下了。 排查过程走了很多弯路,由于眼界和知识储备问题,也进入了一些思维误区,希望此问题能以后再查询此类问题时能有所警示和参考;而且很多排查方法和思路都来自于部门 leader 和 组里大神给的提示和启发,总结 阅读全文
posted @ 2018-12-26 19:34 枕边书 阅读 (250) 评论 (0) 编辑
摘要:解决问题的过程中,我们经常会遇到 "X-Y" 问题,最终撞了南墙才回头,本文是我的一次踩坑经历,介绍了一次连续日志时间差的求解过程。当然也介绍了一些 shell 技巧和 strace 的用法。 阅读全文
posted @ 2018-10-20 17:39 枕边书 阅读 (697) 评论 (0) 编辑
摘要:Hystrix 的配置项中有不少坑,盲目配置会导致 hystrix 不会以期望的方式工作甚至不生效,本文通过源码和实践介绍了 hystrix 的各项配置及其常见误区,也介绍了一些 hystrix 实现相关的知识。 阅读全文
posted @ 2018-09-11 20:39 枕边书 阅读 (1129) 评论 (0) 编辑
摘要:将相似或重复请求在上游系统中合并后发往下游系统,可以大大降低下游系统的负载,提升系统整体吞吐率。文章介绍了 hystrix collapser、ConcurrentHashMultiset、自实现BatchCollapser 三种请求合并技术,并通过其具体实现对比各自适用的场景。 阅读全文
posted @ 2018-07-31 19:50 枕边书 阅读 (679) 评论 (0) 编辑
摘要:文章介绍了spring-boot中实现通用auth的四种方式,包括 传统AOP、拦截器、参数解析器和过滤器,并提供了对应的实例代码,最后简单总结了下他们的执行顺序。 阅读全文
posted @ 2018-07-17 21:29 枕边书 阅读 (3035) 评论 (0) 编辑
摘要:泛型是 Java 的高级特性之一,如果想写出优雅而高扩展性的代码,或是想读得懂一些优秀的源码,泛型是绕不开的槛。本文介绍了什么是泛型、类型擦除的概念及其实现,最后总结了泛型使用的最佳实践。 阅读全文
posted @ 2018-05-14 20:12 枕边书 阅读 (458) 评论 (0) 编辑
摘要:为了解决调试不便的问题,先是同步工具由 nc 转到 rsync,再修改 rsync 源码添加回调参数,最后添加 docker 重启完成的通知信息,成功完成一键部署系统。 阅读全文
posted @ 2018-04-09 19:35 枕边书 阅读 (753) 评论 (5) 编辑
摘要:文章简单地介绍了 javaScript 的 alert 函数在遇到异步代码时的执行顺序问题,分析了问题导致的原因,并提出替换 alert 和 使用 setTimeout 转异步两种解决方案。 阅读全文
posted @ 2018-04-02 19:44 枕边书 阅读 (4260) 评论 (1) 编辑
摘要:最近主要编程语言从 PHP 转到了 Java,一个多月的经历对我很有意义,所以写文章记录一下经历,再分享一下最近学习 Java 的心得体会。 阅读全文
posted @ 2018-03-05 19:50 枕边书 阅读 (7436) 评论 (3) 编辑
摘要:Redis 提供的命令简单而高效,但有时候我们可能会需要命令更复杂一些,如用来实现“原子”操作或复合命令。本文通过几个实例介绍了 Redis 提供的 Lua 脚本嵌入功能,并总结了一下适用场景。 阅读全文
posted @ 2018-02-05 19:27 枕边书 阅读 (3143) 评论 (1) 编辑