异地同城的数据同步相对来说还好一点。如果距离近。可以考虑铺设光缆专线,那线路质量也会比较好。如果距离远,只能租用专线, 那带宽就会直接影响数据同步的效果。一般如果是租用专线,多数采用现在本地进行数据同步。然后在般到异地通过专线进行数据的实时同步
收起如果是对称工作负载的双活数据中心,物理上分开的两个数据中心可以逻辑上看成一个数据中心,两个数据中心不存在生产和同城的区分,都是生产中心,数据同步可以通过一些技术例如存储双活的技术实现,异地的数据复制,采用的多数是异步复制技术,在做设计的时候要考虑到双活数据中心与异地灾备中心的访问关系和策略。技术上也有一些,例如双活数据中心中存储复制采用的EMC VPLEAX METRO MIRROR,那么异地可以采用EMC VPLEAX GLOBAL MIRROR。
如果是非对称工作负载的双活数据中心,那么对于单一业务存在生产中心同城中心的区分,生产和同城之间的复制技术可以更为多样,例如采用存储同步复制技术,那么异地可以采用存储异步复制技术。
这个问题其实就是怎么实现数据容灾和如何确保数据一致性。现在业界的方案很多,zookeeper应该是大家都比较熟悉的。微信的开源PhxSQL也是一个保证数据一致性的MySQL集群方案。业界最高端的应该算spanner了。楼主可以去了解一下这些系统。这些系统的核心就是使用paxos协议或者相似的协议进行同步。paxos协议能保证整个集群的过半机器拥有相同的数据。集群内只要过半的机器存活,那么必定能读到最新的数据。当然,读取数据时必须要读到过半机器的结果。但是,当引入master机制时,由于读写都在master机器上进行,因此当存在master时,只需要读取master机器上的数据即可。
收起