最近公司准备在国外多个国家部署授权服务器,数据库用的是MySQL,要求实现的功能如下:
比如有三台数据库A、B、C,A在美国,B在英国,C在中国,三台数据库都可以进行读写操作,问题是怎样实现三个数据库数据的实时同步呢?
我研究了下Mysql自带的集群方案,主要缺点是不能基于Internet传播信息,因为它集群同步时传播的数据没有进行加密,而且对网络带宽要求较高,不适合基于Internet。
哪位高手能指点一下如何实现上述的功能?
实时同步很难做到。如果你的实时是秒级。
如果是到小时级,则可以通过数据库复制实现。
对这种长距离的同步没有实践过,建议先按普通双机同步做一下实验,看看效果如何再说。
跨地域如此广要想实现严格意义上的实时同步基本上是不可能
就像2楼说的 如果同步要求不是很严格的话 可以考虑用其他方法实现
如果从数据库自身的管理工具上来说不可行的话,那么可以考虑从程序的层面进行处理,每次对其中一个数据库进行增删改操作时,同时对另两个数据库进行同样操作。facebook好像对用户登录时的多个数据库之间的表就是类似处理的。
几个办法
1:程序处理时,对数据库的DML,DDL操作,一次写3份,写到不同的数据库。
2:用MYSQL的复制,组建环状复制,A->B->C->A,这样的,跨国之间的网络延迟需要考虑,另外数据的一致性和稳定性也是个问题,环中的任何一节松动了,恢复起来都不容易。
我也有这个问题,解决了吗?...
--转自