2017-09-17 87 views
0

我从来没有同步多个服务器。我正在研究一个需要多个MariaDB服务器来同步特定表的项目。每个表格只能在一台服务器上进行更改,但每个表格都将在不同的服务器上进行更改。同步表单向不同方向的不同表格

鉴于表A,B,C,和d:

A - 设置表 - 只有更新,当用户更改设置

B,C,d - 工作表 - 这些都会更新一次几秒钟的工作由个人服务器完成。

主服务器 - 变化A;需要B,C,D实时更新。

服务器2 - 更改B;需要A实时更新。

服务器3 - 更改C;需要A实时更新。

服务器4 - 变更D;需要A实时更新。

看看复制教程,我看到很多关于单向和双向的信息,但是我一直未能找到与我正在尝试做的事情相匹配的任何内容。

由于信息是时间敏感的,所以数据必须实时同步。如果服务器彼此失去连接,则只要连接恢复,我仍然需要同步数据。

这些表格将全部通过各自服务器上的PHP代码进行更新。这些服务器都在运行Linux。这是MariaDB本身可以完成的事情吗?或者以另一种方式处理这个问题会更好吗?我真的希望避免将整个数据库双向复制到所有服务器,因为大多数数据对于任何服务器都是不必要的,但主服务器和创建它的服务器是不必要的。

回答

0

忘记有多台机器试图互相同步。反而想想...

计划A:使用单个服务器进行所有工作。然后没有同步。

计划B:利用网络让每个人都可以写入一个主站,该主站可以不断向单向复制到任意数量的从站。奴隶可以从中读取。计划C:某种形式的集群(如Galera),以便多个节点不断地相互复制,并且您可以读取/写入每个节点。

请注意“关键读取”场景的任何同步或复制环境。这是当用户在博客文章上发表评论时,则无法在下一个网页上找到它。问题是它还没有被“同步”。

回答你的问题:除了我描述的3件事外,没有“同步”机制。

连接问题并不是一个严重的问题 - 有很多云服务,在那里,非常接近是可用的时间100.0%。

延迟并不是一个真正的严重问题 - 您会惊讶于网站有多远。千里在今天的互联网上“没有”。

如果距离较远,则最小化号码从用户到Web服务器的往返行程。并尽量减少前端和数据库之间数据库调用的号码。请注意,在另一种情况下将Web服务器置于客户端附近并且靠近数据库是有益的。

在主从设置中,每天几千兆字节是流量的合理上限。你在谈论多少流量?

+0

嗯......那是我害怕听到的。忘了提及这些服务器将位于不同的地理位置,我希望这样做可以帮助减轻任何延迟或连接问题。对我来说,做一些类型的复制会比我的工作线程更好,并且等待连接再次可用于主数据库服务器。由于我期望在每台服务器的个人表中建立千兆字节的数据,因此我不想将其复制到所有这些表中。 –

+0

我添加了注释以解决连接和延迟问题。 –

+0

每个工作线程应该每天向数据库写入8640行。我希望每台服务器上都有成千上万个这样的设备。每行由bigint id,Decimal(5,1),时间戳和2个INT组成。根据我现在工作表中的数据做数学计算,看起来我会每5秒钟为一千个线程传输大约126 KB的数据。可能从工作人员写入主数据库毕竟不是一个坏主意...... –