现在流行云计算,网格计算,分布式系统,网络系统。因为天气原因,国内的网站非常的不稳定,可能域名被停止解析或者无法解析,可能服务器所在的机房被停电或者服务器被关机抬走,而其中很多都是误操作,因为有人为的因素。那么怎么办呢?需要使用镜像技术。

现在的大的网站都是服务器集群,流量均衡,等等,他们自然有一套完整的方案。那么中小网站怎么办呢?

本人还未做过广泛调查,在此提出个人的浅见,抛砖引玉。

我们使用镜像技术来实现。前提:DNS必须稳定,因此要把DNS移到不经常刮风下雨的地方,比如美国的雨棚里;同时为了防止被排除在“域名白名单”之外,必须要进行域名网站的备案注册;最后且最重要的是,必须要遵守当地的法律法规,比如不能涉黄,比如不能政治反动政治敏感和企图颠覆国家政权、泄露国家机密等等,当权者不允许的,或者还没有获得许可的,不要做。我们要做的是在合法的前提下,防止人为因素的误操作,并给自己留下弥补失误的机会。

OK

一般来讲,静态页面镜像非常简单,只要把所有源文件和附件文件通过FTP上传到备份网站即可。但是对于动态页面就麻烦,它包括静态的源文件(包括图片等附件文件),动态的(用户动态上载的)附件文件,和数据库。静态源文件最简单,关键是动态附件文件和数据库的同步请注意,不是备份而是同步,备份很简单。什么是同步呢?比如有甲乙两个镜像站点互为备份要进行同步,在时间点1,二者一致,之后站点甲添加了项目A,修改了项目B,删除了项目C,而站点乙添加了项目X,修改了项目Y,删除了项目Z,需要在时间点2之前同步甲乙二站点,保证两个站点都添加了项目A,X,修改了项目B,Y,删除了项目C,Z。而且如果站点甲乙各自修改了同一样一个项目J,也要两个站点都能同步。

怎么实现?问题过于复杂,需要先简化。

首先,所谓同步,需要时间先同步

也就是说需要时间同步机制,可以使用互联网时间协议同步服务器的时间。不过有更简单的方法就是使用客户端本地的时间,作为主要的时间基准。

简单的将,就是根据服务器上的项目移到本地之后,以本地时间为准。现在多了个本地站点,以本地站点为基准,做起来就会非常的简单。

现在流行的网络架构是客户机/服务器两层模型结构,或者客户机/应用服务器/数据库服务器三层甚至更多层结构,而在应用服务器之前要有防火墙和流量均衡控制。数据库信息是最敏感最需要安全保护的,因此,千万不要尝试着不同站点的数据库之间进行直接的通讯同步,太危险(当然现在的分布式数据库除外,而我们还不能用他们)。这个时间服务器必须足够安全,不能放在经常下雨的地方。它可以是个服务器,也可以是你自己的笔记本,只要保证可靠即可。

其次,镜像服务器的服务和同步策略

学过操作系统我们知道多处理器处理分为非对称多处理和对称多处理SMP,当然对称多处理好,因为每个处理器都是相同的角色,如果有个处理器坏了,系统会自动重构。与之相比拟,我们的镜像站点之间应该也是对称多处理,即不区分谁是主服务器,谁是从服务器(刚才讲的时间服务器除外,它必须做主服务器)。服务器1坏了,服务器3马上顶上。怎么实现呢?利用域名服务器。前面讲过该域名服务必须足够可靠,不能放在风雨交加或者经常动不动就没有征兆刮风下雨的地方。例如Godwithus很与我们同在网站有四个镜像,其中一个是主站(当然这个不符合我们的规则,但是可以把主站作为时间服务器,其他三个服务器作为对称多处理SMP服务器)。主站如果Shutdown了那么没戏了。OK,我的四个域名 主站 http://godwithus.cc ,三个SMP服务器:美国站 http://us.godwithus.cc ,中国站 http://cn.godwithus.cc (http://www.godwithus.cn ),移动站 http://mobi.godwithus.cc (http://godwithus.mobi )。那么还有个首页http://www.godwithus.cc ,它实际上是指向三个SMP站点之一,哪个好指向哪个,哪个出问题了指向下一个。因此用户访问godwithus.cc或者www.godwithus.cc 应该总是能访问到服务的,除非它处在某个国家或者地区的“国域网”范围内或者他自己断网了。

第三,具体的同步方法

利用时间主服务器,一切都以他为基准。学过数据库的都知道,备份策略分为海量(整体)备份和增量备份;支持事务处理的DBMS往往要先写日志在写数据以保证ACID。时间服务器上的数据永远是一致的。在时间点1,所有的SMP服务器都和时间服务器一致,之后服务器甲乙各自修改了其内容,到了时间点2,需要同步了。

这里插一段,SMP很好,但是实现很复杂,还有个简单的方法就是采用主从结构,而这个主服务器是根据情况切换的。实现很简单,每到一个同步时刻,直接把主服务器上的源文件、附件和数据库数据复制到各个从服务器即可。它的缺点是会丢失从服务器上的修改数据,但是我们如果可以保证让从服务器上只读,而只让用户访问主服务器即可。例如,在时间段A,我的http://www.godwithus.cc 是指向 http://cn.godwithus.cc 的,这个时候大家都访问的http://cn.godwithus.cc ,修改的都在它上面,把它作为主服务器。某个时间以后,cn坏了,我就把http://www.godwithus.cc 指向http://us.godwithus.cc ,把它作为主服务器。当然时间服务器http://godwithus.cc 是我自己的,它不会坏。

那么SMP呢?比如让美国人访问美国服务器,电信用户访问电信服务器,联通用户访问联通服务器,而移动用户访问移动服务器,这样用户体验很好,因为速度快。它怎么实现呢?也很简单,在时间点2,按照顺序把每个SMP服务器与时间服务器的数据比较,产生差异数据DIFF,所有服务器的DIFF文件都产生好之后生成总体的DIFF,然后在恢复到各个SMP服务器去。

具体实现,如果是自己写代码很简单,每个表格除了ID字段之外,增加一个全局ID(GID)和全局时间(GTime),用来同步用,GID是全球唯一的,平时local的SMP服务器在添加字段的时候GID和GTIME字段是NULL,只有同步后才有了值。如果是使用商业工具护着开源工具,就不能修改其代码,必须要保证其可升级性。方法就是采用附加字段的方法。在这里我呼吁一下,大家尽量使用开源或者商业工具,比自己一个人写的代码好很多,问道有先后,树叶有专攻,人家一个大的开发团队,肯定别我们个人写的东西要好。我们在其工具的基础上修改,然而只修改其允许我们修改的地方,必须保证其兼容性和可升级性。例如对于Wordpress博客程序,我们可以来设计我们自己的主题模板,但是千万不要动其数据库的字段。

我们附加的数据库只存在于时间服务器上,只用作作于同步,目的就是给每个表格的记录增加GID和GTIME字段。我们其实只要建立一张表即可,它包括:SERVER_ID, DB_ID, TABLE_ID, RECORD_ID, GID, GTIME。相信其他的不需要我多说了。

第四,题外话

关于华人主内网站整合,我发现真的很难。因为没有人会愿意放弃自己的品牌和域名和自己辛辛苦苦开发和经营的程序及服务。但是我们必须要虚己,必须要首先看到现在需要的是什么,其次是我什么可以做到最好,然后再做,不要贪多自己什么都要做,也要学会放弃,选择其实就是放弃,为了神,生命都可以摆上祭坛,还有什么不可以放弃的呢?目的只有一个,“做”“好”该做的东西,且只做一件事但是要把它做到最好,然后再去做其他的。因此要让一个已有的网站来合作很难,看来只有新建立网站来实现,需要的是人,而真正做工的是神。

学过分布式处理的都知道,我们要使用松散耦合技术,比如我做搜索,谁的社区做得好而且跟我可以同工,我就和谁联合社区,谁的新闻做的好且可以和我同工,我就联合谁联合新闻,谁的博客做得好且可以和我同工,我就和谁联合博客,还有视频、音乐等等。一定要联合可以同工的,且要联合最好的。因为我自己不做这些,或者即使我做,我发现我做的没有人家做得好,我要放弃我自己的而使用其他的。还有一点就是一定要尽量利用现成的公共资源,千万不要凭着一腔热忱,搞个烧钱的视频服务器。我们要做人的同工和信息服务的整合。

说这么多,全是自己的虾想的,不对的地方肯定很多。抛砖引玉,希望各位拍砖。

如何实现镜像网站内容的同步相关推荐

  1. GitHub国内镜像网站及文件下载加速

    1.提供两个常用的镜像网址(记住千万别登录账号): https://github.com.cnpmjs.org https://hub.fastgit.org 上面的网址是一个克隆版的Github,上 ...

  2. 百度镜像网站,站长该怎么处理呢?

    有时候我们在百度搜索引擎上面搜索自己网站关键词的时候,搜到了自己网站的关键词的时候,发现标题和我们网站标题一模一样,也没有看域名,就直接点击打开了,忽然就发现怎么是别人的域名,但是网站布局内容等都是和 ...

  3. 百度seo html,百度镜像网站: 怎么办, 对SEO的影响!

    在SEO工作中,经常有人讲,网站被"百度镜像"了,实际上这里讲的并不是百度镜像了你的网站,而是你的网站被镜像,百度收录了这个网站而已. 对于这个问题,SEO人员需要理清思路,分清主 ...

  4. 镜像 网站 linux 程序,腾讯开源镜像网站(腾讯云软件源)地址,附使用说明

    腾讯开源镜像网站(腾讯云软件源/Tencent Open Source Mirror Site)正式上线了,以下为相关介绍及使用说明. 腾讯开源镜像网站介绍 腾讯云软件源由腾讯云提供支持.搭建此开源镜 ...

  5. gitpage镜像网站自定义域名及优化

    原文链接镜像网站和自定义域名 由于众所周知的原因,github 经常抽风,偶尔了解到 netlify 可以镜像本网站,于是特记录之- 多个 git 账号同步 在 .ssh 文件夹下生成一个 confi ...

  6. 国内常用开源镜像网站汇总

    国内常用开源镜像网站汇总 注:本博客内容均为博主浏览各大博客收集整理 部分转载于:https://code.csdn.net/gsls200808/chinese-opensource-mirror- ...

  7. php防止网站被镜像,网站被等恶意镜像的解决、反制措施详细教程

    前天在百度搜索王柏元的博客网站关键词时,猛地在百度结果的第一页中发现了一个标题.简介和我完全一样的网站,不看不知道,这个网站还不是传统意义上的抄袭.盗链,不仅仅把我的网站全部照搬,而且把网页里所有的链 ...

  8. 使用wget命令镜像网站

    因为内容其实并不多,所以我干脆直接上原文了.做为一个PHP(拍***)的User,抠模版实在太常见了,所以....找啊找,想不到,工具原来一直就在我们身边 原文地址:http://blog.china ...

  9. WordPress快速增加百度收录,加快网站内容抓取

    本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 利用百度站长平台提供的链接 ...

  10. 利用谷歌镜像网站编辑Latex的参考文献与doi链接

    利用谷歌镜像网站编辑Latex的参考文献与doi链接 环境:overleaf在线Latex编辑网站 Latex模板:scientific reports期刊 检索网站:谷歌镜像网站http://sch ...

最新文章

  1. python使用matplotlib可视化线图(line plot)、为可视化图像添加双Y轴、分别可视化不同范围的数据(double y axis in matplotlib)
  2. python协程详解_对Python协程之异步同步的区别详解
  3. 1045 快速排序 (25 分)
  4. 数据库开发——MySQL——索引原理
  5. 如何将Outgoing Webhook部署到中国版Azure
  6. JavaOne 2012:使用HTML5和Java构建移动应用程序
  7. 开发者应该了解的API技术清单!
  8. 别人的一句话影响了我好几年
  9. Pandas系列(五)对缺失值的处理
  10. react-native 开发在Android模拟器上运行
  11. Movie Thumbnails Maker Mac(MTM)使用指南
  12. C语言课后习题(16)
  13. ISO 18000-6c 访问标签--应用程序访问操作ISO 18000-6C标签的方法
  14. 研究私域玩法?你可以试试拼团模式
  15. LPVOID 指针 转 int
  16. 民锋国际期货:5年后我会更有钱吗?
  17. 高分子DBCO-PEG-acid需要存储在-20°C,避光,避湿的环境,DBCO-PEG-COOH,末端羧酸在活化剂(如EDC或HATU)存在下可与伯胺基反应,形成稳定的酰胺键。
  18. 当前对计算机专业人才的要求,关于计算机专业人才需求的分析
  19. K8S故障排查指南:部分节点无法启动Pod资源-Pod处于ContainerCreating状态
  20. windows清理c盘的三种有效方法

热门文章

  1. 分号在各种编程语言中的作用
  2. 深度学习模型显示工具netron
  3. 如何在 Mac 上更改文件夹颜色,改变 mac 文件夹颜色教程
  4. PR免费转场 PR剪辑视频图形转场PR动态图形模板MOGRT
  5. BMVC2020 Best Paper: Delving Deeper into Anti-aliasing in ConvNets论文解读
  6. 数据产品经理新人的工作笔记学习
  7. 【论文阅读】中医类药性分析:使用机器学习方法预测类药性
  8. php网站开题报告该怎么答辩,如何应对开题报告答辩?看完你就明白了
  9. ovs vlan tag管理
  10. wps office应用计算机等级考试,全国计算机等级考试一级教程:计算机基础及WPS Office应用(2016年版)...