CDN源站数据同步优化综述
发布时间
阅读量:
阅读量
前言
源站的基础结构由两台FTP服务器(主用与备用)以及多台源站服务器组成。用户可通过FTP或rsync方式将数据上传至主FTP服务器,在正常运行状态下,该服务器会实时将数据同步至各源站服务器。
数据同步工具V1.0设计与实现
inotify提供了多种接口形式的封装,其中较为典型的是原始的C语言接口,以及在此基础上进行封装的其他编程语言接口(如golang、python等)。基于性能方面的考量,最初自然而然地选择了原生的C语言接口,并对其进行二次封装。
同步工具被划分为两个功能模块,即文件列表生成模块(以下简称生成模块)和文件列表拉取模块(以下简称拉取模块)。生成模块部署于ftp服务器端,通过inotify实现对数据根目录的递归监控,记录目录结构中的各类变化事件(包括新增、删除、修改等),随后对所获取的目录列表进行去重处理,并以分钟为单位将结果写入特定文件(以下简称列表文件)。拉取模块则部署在各源站机器上,定期从生成模块获取列表文件,并借助rsync工具将其同步至本地源站。
inotify编程与epoll编程在实现机制上存在一定的相似性:
初始化阶段:使用inotify_init函数,这与epoll中调用epoll_create的作用类似。
添加事件监听:通过inotify_add_watch函数实现,其功能类似于epoll中调用e
全部评论 (0)
还没有任何评论哟~
