我们已经建立了三个节点的mariaDB galera集群,该集群基本上是一个多主服务器,并且可以在集群中的各个节点之间进行数据的同步复制。最终,可以通过集群中的任何节点执行读/写操作。 但是,它没有解决我们的问题。由于mariadb具有像mariaDB maxscale这样的多种类型的分片,因此我们也可以在galera集群中应用异步复制。 同时,我们还可以使用galera集群上的ReaWrite拆分器和schemaRouter来分配负载。 借助MariaDB如何实现以下要求 数据不应分布在每个节点上,这意味着数据复制应该是可控的。默认情况下,MariaDb在主从模式下会复制到所有从属服务器,在galera情况下会复制到所有服务器。对于galera,主要的问题是我们需要在所有节点中都拥有大型硬件。我同意我们可以为不同的客户端实现高吞吐量,但实际上并未镜像分发数据。同样,在主从式情况下,它具有单点故障的瓶颈。 请提出建议,因为我们的应用程序是读/写密集型的,所以有没有其他方法可以提供高可用性。因此,我们需要将负载分布在多个节点上。 在进行读/写操作的情况下,应根据复制因子在多个服务器之间分配/聚合数据。如何使用mariaDB实现数据复制。
答案 0 :(得分:0)
考虑一个3节点的Galera集群,每个节点进行写操作。
对于这些节点中的每个节点,请挂起任意数量的只读从站。
如果您确实需要分片(因为需要比Galera提供更多的写扩展),则可以设置多个Galera集群,每个集群包含一部分数据。然后在所有代理服务器上放置一个代理,以将流量定向到主群集。
同时,以较低的long_query_time
值打开慢速日志,看看是否可以加快查询速度。