主-主数据库系统架构


常常有人问咱们,如何创建分离式网络系统,将一组服务器放置在中国,供中国用户使用;另外一组服务器放置在国外,供国际用户使用。数据库

从根本上来说,这是一个很困难的问题,没有最佳选择方案。有不少选择方案,如采用Mongo数据库或使用主-主复制(即主机-主机复制),表面看起来很管用,可是会遇到不少几乎没法解决的实际问题,其实,这些方案根本就不能采用。服务器

现今,咱们尚未最钟意的解决方案,不少时候,咱们惟一的选择就是将一套独立的系统放置在中间地理位置,如香港或东京的AWS,咱们的用意在于,能够确保到中国大陆及港澳台地区以及到世界的其它国家和地区的链接基本可靠,固然,在中国,链接性能因地理位置不一样而有所差别。网络

一个新的选择方案即是采用Tungsten Replicator, 它是一种数据库复制管理系统,最近,人们正在努力地开发此系统。它是开源的/商业性的,由Continuent研制的,可经过www.continuent.com, 获取详细信息。咱们还未采用该系统,可是也许很快将会采用。ide

最近,咱们也在考虑采用双重数据库,双重主-从系统(即主机-从机系统)在某些状况下很是实用,尤为适用于两个分离式的系统或在地理位置上是分离式的系统。例如,在电子商务或是交易类系统中,一方是上传产品和库存信息,而另外一方是发出采购需求。关键是可以在两方实现完全的读/写分离,或至少在两个数据库之间实现完全的读/写分离。性能

基本理念就是:采用两组服务器,一组在中国大陆,另外一组在香港,即一组服务器称做SA,另外一组称做SB。在每台服务器上,安装两组彻底独立的MySQL实例(嗯,都采用相同的二进制,可是采用两组不一样的配置、不一样的数据目录结构及不一样的init脚本)。咱们将这些实例称做IA 和IB, 有各自的独立的生产数据库,称做DBA 和DBB。 这一构想就是:大陆服务器SA 将成为DBA主机及DBB从机,而香港服务器将成为DBA从机及DBB主机。尽管两组服务器侦听端口号等各不相同,可是却进行正常的互相复制工做。spa

而后,在大陆,应用程序的不少工做在DBA上实现,仅在DBB上进行读操做。而在香港,服务器的不少工做将经过DBB实现,在DBA上仅实现读操做。blog

由于复制工做是服务器层面上的事情,没必要在每一个数据库上进行,因此,为确保进行合理的分离式控制及数据库复制,您将须要采用两个实例。开发

这事并不简单,可是若是您可以实现读/写分离,即分别在本地主机上实现写操做,在本地从机上实现读操做,那么您的系统会很健壮。若是您可以作到这些,您还须要谨慎的一点是:在全球范围内在两个地理位置创建双重系统,这些系统必须具备良好的性能且实现可靠的数据传输。get


(Authored by Steve Mushero / ChinaNetCloud CEO & CTO  本博客英文原文请点此查看
博客

相关文章
相关标签/搜索