需求描述
一个站点为了提供多种网络环境,提供多个镜像网站,然后通过路由判断访问来源,使用不同的服务器提供服务,这样的解决方案在目前大型网站中比较常用。
但是在网站程序需要更新时,如果操作不当,就容易造成多个站点版本不统一,或者某个站点无法访问的问题,因此,需要一个能够同时更新所有站点镜像的解决方案。
解决方案描述:
本解决方案通过同时对多台 FTP 服务器的同步管理,实现同步更新,同步备份。如果更新过程有误,自动回滚处理,实现多服务器间的同步更新。
此方案使用 B/S 架构,方便构架,使用 asp.net 异步方案,时刻监控上传进度。同时也保证了多文件上传时 http 请求超时的问题。
多站点用户权限管理:在大型网站中,一般不会只有一个 www.xxx.com 站点。一般会有多个子站点同时提供服务,例如 aaa.xxx.com 和 bbb.xxx.com. 为不同的用户分配更新站点的权限。对所有子站点实现了统一管理
网络拓扑图:
执行更新操作时,先更新 Web 服务更新控制服务器,并保证其内容正确。然后调用同步管理,将 Web 服务更新控制服务器中的内容同时同步到 3 个 Web 服务器中。
Web 服务更新控制服务器配置:
Windows Server 2003 + .net framework 2.0 + SQL Server 2005( 可选 )
明细功能:
1、 同步管理
对站点执行同步操作。
2、 回滚管理
当同步过程出错时,可以手动执行回滚,将备份的文件还原。
3、 同步日志
查看同步过程中 FTP 返回的操作结果。
4、 用户管理
添加、删除、修改用户以及用户对应的权限。
同步管理程序流程:
异步上传执行流程:
容错处理:
1、 上传文件过程中 FTP 出错
系统将直接跳出上传过程,报告错误。执行中断。
2、 备份文件过程中 FTP 出错
系统将直接跳出上传过程,报告错误。执行中断。
3、 上传和备份过程正常,覆盖文件前 FTP 出错
将未出错的其他服务器启动自动回滚。
4、 覆盖文件中 FTP 出错
将未出错的其他服务器启动自动回滚,检查出错 FTP 中已经上传的文件。并执行手动回滚。
5、 覆盖文件中有文件被锁死无法更新
启动所有服务器的自动回滚,将所有已经上传的文件回滚至前一版本。
6、 自动回滚失败
调整好所有 FTP, 执行手动回滚,已经执行自动回滚的文件无法再执行手动回滚 .
7、 用户取消
用户取消时将不进行之后的操作。但是如果状态已经在覆盖中,为了保障所有文件版本相同,则无法取消。
相关技术:
1、 asp.net 异步操作
2、 asp.net FTP 操作