源站文件同步

源站文件同步
对于静态下载类源站,使用nginx 就可以搭建源站。再给客户提供一个接口(http post): 文件上传(提供url远端下载),查询 ,删除。有了查询后一般会涉及到数据库,下面来讨论主备方案。

主备方案:数据库主备和源站文件主备, 主备同时只有一个在操作数据库。
一:数据库和源站在一台机器
nginx 主 nginx 备
mysql 主 mysql 备
如果数据库主备同步 采用 mysql 主从复制, 除非保证源站文件主备的强一致性,才能保证切换后查询文件的状态和真实文件的状态一致。否则我们在备上使用了主的数据库(存储主的文件状态),而实际文件状态是备的

另外一种做法是 将主在收到接口请求时复制一遍到备,这样可以达到备上数据库和源站文件的准确状态,为了避免下载到源站双倍流量,可以采取延时复制,备下载请求到主。流量复制 不仅有nginx mirror 模块,还有 goreplay 这种流量、文件回放等功能。

除了可以从主上复制请求 还有一种是 从数据库查询 然后构建接口请求到备。以上方式都是利用接口重新下载才能同步文件。数据库和源站在一台机器,需要自己去做数据库创建、同步等维护。

二:数据库和源站分离
nginx 主 nginx备
数据库中心 主
数据库中心 备

数据库和源站分离,统一利用数据库中心的技术,避免了自己维护剩下工作就是保证文件同步好。忽略数据库文件状态和源站文件状态的一致性,除了使用接口复制能力,

还有一种 使用 rsync 实现文件同步的状态:使用rsync 同步删除会导致,主 下载了部分文件,挂了导致备 没有同步到,切换到备 后,再切换回A ,A中多余的文件可能被删除。没有绝对的办法保证 主和备上文件一致性,但是我们可以采用其他措施如:404 重回源,重新拉取等措施。

三:分布式文件系统和分布式数据库

目前小厂暂时没有这种云存储的能力,且可能会造成流量冗余给公司增加带宽和存储成本。公司擅长的mfs分布式文件系统也无法满足跨集群能力,所以pass掉。以上初步采用rsync同步和接口复制删除(rsync 也能实现删除 如果比较重要紧急的删除用接口)

四:rsync
详细见骏马金龙的博文,后续有需要再仔细钻研https://www.cnblogs.com/f-ck-need-u/p/7226781.html?utm_source=itdadao&utm_medium=referral


[root@master.com ~]# cat /etc/rsyncd.conf
uid = nobody 
gid = nobody
use chroot = no 
pid file = /var/run/rsyncd.pid
secrets file = /etc/rsyncd.secret
transfer logging = no 
timeout = 900
port = 8273
read only = yes
write only = no
max connections = 2048
ignore nonreadable = yes
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
#log file = /var/log/rsync.log
#syslog facility = local3
​
[XXX]
path = /cache0/XXX/rootdir
read only = no 
auth users = cloud                  

每日同步:/bin/rsync -az --delete --port=8273 --timeout=30 --contimeout=15 --password-file=/sss/config/rsync.key cloud@master.com::XXX /cache0/XXX/rootdir/
master.com 为主,主同步自己,备同步主

同步单个文件:/bin/rsync -azR --delete --port=8273 --timeout=30 --contimeout=15 --password-file=/xcloud/sourceVerify/config/rsync.key /a/./filename xcloud@dstip::XXX

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值