日度归档:2009年6月23日

巧用svn实现跨平台多服务器即时文件同步

气象项目,因为气象网站对于数据的实时性非常高,按以往的设计理念,采用多台服务器做负载均衡。文件的同步面临着一个问题,因为如果采用定时更新数据的话,一定会有一个时间上的延迟。这样的话,也许对于一个重点靠实时数据为目的的网站会是一个严重的问题,这类网站损失不起几十秒及至几分钟的数据延时。而且在文件同步的软件选择上也挺麻烦的,因为要做到跨平台,很多同步软件要么是windows的要么只支持linux

后来想来完全可以通过svn为实现文件的同步,svn在windows及linux都能非常快捷的部署,而且文件的同步效率较高,还能保存文件的历史版本,关键的是svn支持命令行操作,可以很方便的集成到网站和其它其它语言开发的软件中。

现初步的思路是(后端服务器的集群):

一台后端主服务器A(安装svn服务器、客户端,mysql服务器,nginx 网站服务器,php-cgi,气象数据的获取分析入库程序,生成html程序)

一台或多台后端分服务器B (安装svn客户端,nginx 网站服务器,php-cgi)

1、外网的一台windows气象服务器svn上传数据至服务器A 的svn【版本库1】。

2、上传完毕后通知A服务器分析气象数据并入库。

3、然后在网站目录生成html文件及图片。

4、接着通过svn客户端把网站目录上传至本身svn服务器的【版本库2】。

5、最后通知后端的分服务器B,在内网从svn服务器获取网站目录全部文件的最新版本。

 

从而实现即时的网站数据同步。