使用Goodsync+FTP实现简单的跨服务器数据同步

前言
近来,入职了一家新公司,公司是一家垂直电商平台,当前的业务量很小,服务器数量也不多,之前并没有专职运维,所以很多工作都得从零开始。
目前的业务架构主要是.NET+WCF,其中后端两台WCF服务器(Windows)通过LVS来实现负载均衡,两台服务器上的程序文件一致;然而这两台服务器并没有使用共享存储的方式来确保数据一致,所以就造成了一个很痛苦的现实:每次发布程序更新的时候,我都需要在两台服务器上都操作一次,这样很没有必要,也很浪费时间。所以当务之急我需要解决两台WCF服务器数据不一致的问题。

理想的状态应该是两台服务器配置共享存储,将程序文件放在共享存储上,这样可以确保两台服务器的程序文件完全一致。

然而回到实际工作中,因为我们目前处于业务架构变更的阶段,整个线上业务将陆续放弃.NET环境,当前线上的.NET、WCF服务器也将在未来一段时间下线,所以从成本上考虑,使用共享存储并不实际;于是我开始考虑通过文件实时同步来实现两端程序文件一致。

作为一个Linuxer,理所当然的第一时间想到了rsync,然而在进一步研究之后,我选择放弃rsync。因为在Windows环境中并没有一种很好的类似inotify的机制来配合rsync实现文件的实时监控,要实现文件的实时同步,需要自己写脚本通过计划任务来执行,这样就比较麻烦。

在经过一番考量之后,忽然想起,在上家公司很久之前用过一款工具叫做Goodsync,还挺好用。于是又重新开始研究了一下,果然,Goodsync在Windows中简直是神器啊,配置简单,功能强大,支持通过FTP的方式传输数据,实时监控数据变化并同步变更后的数据,覆盖同步前先备份数据到特定目录,支持双向同步,这简直就是为我量身定制的。

说干就干,下面就来详细写一下部署过程。

  • 部署FTP服务
    因为Goodsync支持通过FTP的方式来实现数据同步传输,而且FTP的配置相对简单,所以在此例中我选择部署FTP。
    为了方便配置,同时也因为Windows自带FTP配置麻烦,所以FTP Server我选择Filezilla Server,Filezilla是一款开源免费的FTP软件,也是一款神奇,具体的我就不多介绍了,总之也是一款神器。

Filezilla的安装十分简单,因此略过安装过程,仅展示下相关的服务器配置。

在安装文件夹中双击“FileZilla Server Interface.exe”,进入控制台,然后点击“编辑”→“设置”,打开配置页面

a.点击“ip绑定”,修改绑定IP。此处,对话框中填写“”则代表绑定服务器所有IP,也就意味着可以通过服务器上配置的所有IP来访问FTP,而出于安全考虑,我们仅希望通过内网来访问FTP,所以我们绑定内网IP地址
此处输入图片的描述
*
b.点击“日志”,勾选“记录日志到文件”开启日志记录,同时为了便于日志管理,我们设置每天记录日志到一个文件并删除30天前的日志文件。
此处输入图片的描述
**c.
点击“自动禁止”,勾选“启用自动禁止”,启用FTP安全设置。
此处输入图片的描述

创建FTP用户密码。
此处输入图片的描述
此处输入图片的描述
添加共享文件夹
此处添加你需要同步的文件夹即可。

此处应该有图片。

最后,为了服务器的安全,我们应该适当的做一下安全设置。
打开服务器“高级安全防火墙”选项,选择“入站规则”,新建一条规则。
此处输入图片的描述
选择“端口”,点击下一步。
此处输入图片的描述
选择“TCP”,在“本地特定端口”中填写21,以使端口作用于FTP 21端口,然后点击下一步。
此处输入图片的描述
选择“允许连接”,点击下一步,下一个页面默认设置,然后点击点一步。
此处输入图片的描述
自定义名称、描述。
此处输入图片的描述
入站规则列表,双击打开新建的入站规则FTP
在打开的选项卡中选择“作用域”,在“远程IP地址”栏中添加允许访问的IP,然后确认退出。
此处输入图片的描述
FTP部署完成。

  • 部署Goodsync
    因为通过FTP可以实现文件上传下载,所以我们无需在另外一台服务器上部署FTP服务,我们在第二台服务器上部署Goodsync服务,然后Goodsync通过FTP连接第一台服务器,从而实现数据实时同步。

安装过程比较简单,就不多啰嗦了;不过有一点需要注意,在安装完成后,第一次启动时会跳出一个对话框“GoodSync Connect安装”,此处选择不安装

下面开始配置GoodSync。
a.新建任务,任务名称可以自定义,此处我们根据业务命名为“service-sync”,任务类型选择同步,点击确定后弹出配置界面。
此处输入图片的描述
b.点击“工具”,选择“程序选项”,勾选“系统启动时运行GoodSync”,然后保存退出。
此处输入图片的描述
c.点击“任务”,选择“选项”,开始配置同步任务。
d.参照下图,配置“常规”选项。
此处输入图片的描述
e.参照下图,配置“自动”选项。
此处输入图片的描述
f.参照下图,配置“已预置”选项。
此处输入图片的描述
g.其它选项默认设置,然后保存退出。

以上设置仅完成同步参数设置,接下来我们要配置最重要的一步,指定同步两端文件夹。

指定左侧文件夹
在主配置界面,点击左侧的“浏览”,在弹出的“左侧文件夹”选项卡中选择本地需要同步的文件夹,然后点击“OK”保存退出。

此处应有图片

指定右侧文件夹
在主配置界面,点击右侧的“浏览”,因为本次方案中我们采用FTP的方式来实现两端同步,故应在弹出的“右侧文件夹”选项卡中选择FTP,在右侧填写相应的FTP地址、用户名密码,点击右侧“更多”,勾选“主动FTP模式”,在下面的框中选中对端需要同步的文件夹,然后点击“OK”保存退出。

此处应有图片

至此同步配置完成。