记录一下当年把 FreeBSD 中 zlib 砍到只剩一份的过程
软件项目中,实现同一功能的源代码只保留一份是一项十分重要的最佳实践,这种做法可以带来许多显而易见的好处。
FreeBSD 是一个有相当长历史的项目,而 zlib 是一个很常用的库,并且当时在整个系统中有多处不同的副本,因此我们希望这个迁移的过程尽可能平滑而尽量不要直接导致整个项目无法联编,或是需要长时间禁用某些模块的情况。
软件项目中,实现同一功能的源代码只保留一份是一项十分重要的最佳实践,这种做法可以带来许多显而易见的好处。
FreeBSD 是一个有相当长历史的项目,而 zlib 是一个很常用的库,并且当时在整个系统中有多处不同的副本,因此我们希望这个迁移的过程尽可能平滑而尽量不要直接导致整个项目无法联编,或是需要长时间禁用某些模块的情况。
本文总结了一次关于头像图片访问异常的排查过程。用户反馈在某些网络环境下无法查看特定域名的头像图片,经过分析发现问题是由于网络环境对该域名的连接进行了阻断,可能是被误认为广告域名。通过替换域名解决了问题。文章还讨论了SNI(服务器名称指示)在HTTPS连接中的作用及其在拦截请求中的应用。
或许在当下云计算时代,已经很少有人会用到移动硬盘或U盘的经验,亦或者大多数人都没有弹出移动设备后再拨出的习惯。笔者因早年在使用U盘时经历过直接拨出U盘导致其报废的“惨痛”教训,因此对移出设备的操作是铭记于心,万不敢直接拨插移动设备。但就是这个只需点击一次移出设备的操作,很多时候就会让我们有些烦恼,因为它有时候总喜欢和你对着干。这不今天就遇上一件无法解释的诡异现象:移动硬盘无法弹出,尝试过之前的各种妙招后仍是无济于事,最后也只是能祭出万能的关机大法才算是得以解脱。
HDFS的内部数据安全风险很多,总的来看,对于内部监控来说,一方面是将本来限制在IDC内部才可访问的Hadoop相关系统通过WebHDFS等HTTP(S)形式的API对办公网或外部进行了开放,扩大了攻击面,这个需要从Web/API层面去做分析和监控预警;另一方面是安全认证/加密等措施执行不到位,导致攻击者只要获取到master/namenode等地址信息就可以直接通过alluxio/hadoop等客户端直连,然后通过文件拷贝等方式获取parquet文件从而拿到敏感数据完成攻击,这个需要从主机层的异常命令操作分析来监控预警相关风险。
用好中间件是每一个开发人员的基本功,一个专业的开发人员,追求的不仅是中间件的日常使用,还要探究这背后的设计初衷和底层逻辑,进而保证我们的系统运行更加稳定,让开发工作更加高效。结合这一主题,本文从一次线上告警问题出发,通过第一时间定位问题的根本原因,进而引出Google Dapper与MTrace(美团内部自研)这类分布式链路追踪系统的设计思想和实现途径,再回到问题本质深入@Async的源码分析底层的异步逻辑和实现特点,并给出MTrace跨线程传递失效的原因和解决方案,最后梳理目前主流的分布式跟踪系统的现状,并结合开发人员日常使用中间件的场景提出一些思考和总结。
在一些轻量化的场景之中,使用 ELK 方案来解决日志问题就会比较笨重,素闻 Loki 比较香,今天折腾了一番,特此记录一下整个流程。本文不涉及 Loki 的深度使用与研究,但是参照本文,你可以快速把 Loki 拉起来,并且把 Nginx 日志正确采集进来。
聊聊最近对一台便宜的苹果老设备的使用和升级改造,以及过程中的小经验。
如果你没有在家里安静的进行长时间密集计算的需求,也不想“烧烤”你的 MacBook ,并且没有总成本低一些的要求,那么这个方案或许并不适合你。
相比之下,我更推荐采购支持 ECC 内存的搭载 13 代桌面 CPU 工作站(如 P360 之类的),功耗比、性能、可扩展性都很棒,美中不足的只有三点:体积大一些,使用的是工作频率不高的 DDR5 ECC 内存,价格会是这台设备的三倍。
Systrace (Perfetto) 工具的基本使用如果还不是很熟悉,那么需要优先去补一下上面列出的 Systrace 基础知识系列,本文假设你已经熟悉 Systrace(Perfetto)的使用了