RT,好比国内的大型网站淘宝、百度、腾讯、新浪等大网站肯定在全国各个地区都有服务器,那他们的每个服务器数据是如何做到同步的?具体步骤是怎么样的?还有不同地区访问不同机房的服务器,比如江浙沪一带访问百度的话是访问上海的服务器,京津翼用户访问的是北京的服务器,这个也是怎么实现的?最好有具体的实现方法哦!希望各位大哥大姐能指点一二,小弟不胜感激!

解决方案 »

  1.   

    个人觉得,如果是集群的话,可以通过共享存储来实现,如果是异地,很可能是cdn加速同步实现
      

  2.   

    这个问题好像比较大呀。首先同步数据到底是同步什么数据,这个要首先确定。如果是静态数据(如图片、DHTML文件等)CDN来分发是常见的方法(其实这个一般也不称为数据同步,而是称为数据分发)。如果是动态数据(最典型的就是数据库数据),一般是要集中服务器集群处理的(为了保证数据的一致性,例如存货数据,你不同步就有可能会超买)。但是为了保证数据的高并发可用性,一般会做很多优化
    1. 对数据进行横向分割,在一组数据库服务器前面设置一个LB或者Proxy,把对于不同部分的数据访问分配到不同的服务器子集群上的,这样只需要在子集群内部做同步,而不需要整个大的集群内同步。
    2.会对数据库进行读写分离(主数据库处理写操作,其他数据库做读处理),当然怎样做读写数据库的数据同步会是一个挑战。
    3.利用分布式Cache来数据访问,因为是分布式共享Cache,所有的数据访问都会到这里。但是Cache和后台数据库的同步又是一个问题。所以,数据同步在不同的架构上的要求是不一样的,而相应的解决方案也会不一样。而且这些技术都是巨头们的核心技术哟。
      

  3.   

    另外,这篇文章很不错http://www.csdn.net/article/2014-01-20/2818197-distributed-system