← 全部文章

技术与生活 / 一篇记录

发布文件时,避免让读者看到半截内容

直接向正式文件写入的过程中,其他进程可能同时读取。先在同一文件系统准备完整文件,再切换入口,可以把长时间写入缩成一个较短的可见变化。

先明确这里的区别

先生成完整文件再替换入口,可以避免读者看到只写了一半的内容。

这是一条运维检查思路,具体阈值与工具要结合服务规模和实际部署环境选择。

临时文件 -> 写入并校验 -> 同文件系统重命名

怎样判断处理正确

并发读取时检查是否只会看到旧版或新版完整内容。

校验文件内容后再替换,并保留旧版本的定位信息。单文件原子切换不等于多个文件一起原子更新,需要一致性的站点通常还要按整套目录发布。

临时文件也应与正式文件使用相容权限。切换入口后,服务用户是否能读取、父目录是否可穿越,都需要检查。内容完整却权限错误,仍然可能导致发布后立即不可用。

需要留意的是,跨文件系统移动通常不能直接假设具有相同原子性。

参考:运维 文档。

搜索文章

输入关键词,找回一篇记录。