首页 > 解决方案 > 具有数据分片和集群的 mariadb 复制

问题描述

我们搭建了三节点的mariaDB galera集群,基本上是一个多主节点,在集群中的节点之间进行数据的同步复制。最终,可以通过集群中的任何节点进行读/写。但是,它并没有解决我们的问题。由于 mariadb 有多种风格,例如 mariaDB maxscale for sharding ,我们也可以在 galera 集群中应用异步复制。同时我们也可以利用 galera 集群上的 ReaWrite splitter 和 schemaRouter 来分配负载。如何在 MariaDB 的帮助下实现以下要求 数据不应该分布在每个节点中,这意味着数据复制应该是可控的。因为 MariaDb 默认情况下复制到所有从属服务器(如果是主从),并且所有服务器都有galera 的数据相同。在 galera 的情况下,主要关注的是我们需要在所有节点中拥有大型硬件。我同意我们可以为不同的客户端实现高吞吐量,但数据不是分布式的,实际上是镜像的。同样,在主从存在单点故障瓶颈的情况下。请建议,是否有任何替代方法可以提供高可用性,因为我们的应用程序是读/写密集型的。所以我们需要将负载分布在多个节点上。在读/写操作的情况下,数据应该根据复制因子分布/聚合到多个服务器。如何使用mariaDB实现。t 分布式,实际上是镜像的。同样,在主从存在单点故障瓶颈的情况下。请建议,是否有任何替代方法可以提供高可用性,因为我们的应用程序是读/写密集型的。所以我们需要将负载分布在多个节点上。在读/写操作的情况下,数据应该根据复制因子分布/聚合到多个服务器。如何使用mariaDB实现。t 分布式,实际上是镜像的。同样,在主从存在单点故障瓶颈的情况下。请建议,是否有任何替代方法可以提供高可用性,因为我们的应用程序是读/写密集型的。所以我们需要将负载分布在多个节点上。在读/写操作的情况下,数据应该根据复制因子分布/聚合到多个服务器。如何使用mariaDB实现。

标签: mariadbreplicationshardinggaleramulti-master-replication

解决方案


考虑一个 3 节点 Galera 集群,每个节点都进行写入。

对于这些节点中的每一个,挂起任意数量的只读从站。

如果你真的需要分片(因为需要比 Galera 提供的更多的写入扩展),那么设置多个 Galera 集群,每个集群包含一小部分数据。然后在它前面放置一个代理,将流量引导到主集群。

同时,打开低值的slowlog,long_query_time看看是否可以加快查询速度。


推荐阅读