您的位置:首页 > 理论基础 > 计算机网络

实现web数据同步的四种方式

2013-09-02 13:19 375 查看
实现web数据同步的四种方式
=======================================
nfs实现web数据共享
rsync +inotify实现web数据同步
rsync+sersync更快更节约资源实现web数据同步
unison+inotify实现web数据双向同步
=======================================

一、nfs实现web数据共享



nfs能实现数据同步是通过NAS(网络附加存储),在服务器上共享一个文件,且服务器需要设置文件系统的权限和配置文件设置的权限,权限两者之间取交集,然后客户端把共享的文件挂载到本地,客户端对文件有读写权限,则实现数据的同步。
nfs+web:服务器端的配置:
1)、安装相关软件,httpd提供web服务,nfs-utils提供nfs服务
2)、设置web的相关配置,使得web能够提供web服务
3)、设置nfs的相关配置,共享网页文件

web:客户端的配置
1)、安装httpd的软件

2)、设置web的相关配置,使得web能够提供web服务


实现同步:

1)服务器端设置apache用户对共享的文件有读写权限

2)客户端挂载服务器的共享文件,查看客户端是否已经同步服务器端的文件

3)客户端在共享的文件中新增文件,查看服务器端是否同步文件

所有的数据其实都保存到了nfs服务器,不论用户访问哪台Web服务器,都要来nfs服务器获取数据,这样势必照成nfs服务器的性能下降,而且客户端对nfs服务器的依赖性较大,如果nfs服务器down掉之后,客户端的web服务器就无法工作了。(动态的那种数据,而且数据量很大的数据,就不要用nfs服务器来实现数据共享了,一般适应于,静态页面和数据较小的文件)

二、rsync +inotify实现web数据同步



rsync(remote sync)的特性:
可以镜像保存整个目录树和文件系统
可以同步增量同步数据,文件传输效率高,因而同步时间很短
可以保持原有文件的权限、时间等属性
加密传输数据,保证了数据的安全性
支持匿名传输
rsync也能实现同步,但是需要自己手动的去同步数据,当数据量非常的频繁时,无疑是加大了运维人员的工作,inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,inotify-tools工具的出现,解决了这种工作,安装inotify软件的主机会监听服务器端的主机是否数据和本机不一样,(因为在上传数据时,运维人员先上传到安装inotify主机上),不一样就用rsync命令直接把数据传输过去。客户端安装rsync软件是为了调用rsync的命令,安装inotify软件是监听和数据是否发生改变,服务器端安装rsync软件时为了提供rsync服务。
rsync+web服务端的配置:
1)、安装相关软件



2)、web的相关配置,使得web能够提供服务


3)、rsync服务的相关配置

*****建立rsync的配置文件和密码文件************
touch /etc/rsyncd.conf(rsync的配置文件)
touch /etc/rsyncd.pwd(用户的密码文件)
chmod 600 /etc/rsyncd.pwd(权限要设置为600,否则无法备份成功)




rsync+inotify+web客户端的配置:
1)、inotify-tools软件的安装及设置
2)、[b]web的相关配置,使得web能够提供服务[/b]




3)、配置能连接rsync的密码文件和传输数据的脚本



验证实现同步:




[b] rsync +inotify这种能实现数据的同步,但是当网络很繁忙,且文件变化比较频繁时,而且需要同步的rsync服务器端比较多时,rsync+inotify肯定是满足不了需求的,于是[b]rsync+sersync这种更快更节约资源实现web数据同步可以弥补rsync+inotify带来的不足,rsync+inotify还有一个重大的缺点就是数据传输只是单向的,当运维人员由于“粗心”把数据直接传输rsync服务器端时,inotify主机是得不到rsync服务器端的数据,于是unison+inotify实现web数据双向同步,解决了rsync+inotify的这一缺点。[/b][/b]

三、rsync+sersync更快更节约资源实现web数据同步





sersync与inotify相比有以下优点:
sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。
sersync配置起来很简单,其中bin目录下已经有基本上静态编译的2进制文件,配合bin目录下的xml配置文件直接使用即可。
sersync使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。
sersync有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则按设定时长对同步失败的文件重新同步。
sersync自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。无需再额外配置crontab功能。


rsync+web服务器端的配置:


1)、安装相关软件



2)、web的相关配置,使得web能够提供服务


[b]3)、rsync服务的相关配置[/b]



sersync+web客户端的配置:
1)、先下载安装sersync软件,做初始设置



2)、修改sersync的配置文件


验证实现同步:


四、unison+inotify实现web数据双向同步





Unison是一款跨平台的文件同步对象,不仅支撑本地对本地同步,也支撑经由过程SSH、RSH和Socket等收集和谈进行同步。
Unison支撑双向同步操纵,你既可以从A同步到B,也可以从B同步到A,这些都不须要额外的设定

1)、两个服务器都编译安装这三个源码包:(在此我只写一台服务器的编译安装过程)







2)、服务器A生成的公钥传到服务器B上:


3)[b]、服务器B生成的公钥传到服务器A上:[/b]

4)[b]、分别搭建web服务,服务器A的网页文件存放路径为/web/htdocs,服务器B的网页存放路径为/website[/b]



5)[b]、编unison同步的脚本进行测试[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 软件 服务器