mariadb - 具有数据分片和集群的 mariadb 复制
问题描述
我们搭建了三节点的mariaDB galera集群,基本上是一个多主节点,在集群中的节点之间进行数据的同步复制。最终,可以通过集群中的任何节点进行读/写。但是,它并没有解决我们的问题。由于 mariadb 有多种风格,例如 mariaDB maxscale for sharding ,我们也可以在 galera 集群中应用异步复制。同时我们也可以利用 galera 集群上的 ReaWrite splitter 和 schemaRouter 来分配负载。如何在 MariaDB 的帮助下实现以下要求 数据不应该分布在每个节点中,这意味着数据复制应该是可控的。因为 MariaDb 默认情况下复制到所有从属服务器(如果是主从),并且所有服务器都有galera 的数据相同。在 galera 的情况下,主要关注的是我们需要在所有节点中拥有大型硬件。我同意我们可以为不同的客户端实现高吞吐量,但数据不是分布式的,实际上是镜像的。同样,在主从存在单点故障瓶颈的情况下。请建议,是否有任何替代方法可以提供高可用性,因为我们的应用程序是读/写密集型的。所以我们需要将负载分布在多个节点上。在读/写操作的情况下,数据应该根据复制因子分布/聚合到多个服务器。如何使用mariaDB实现。t 分布式,实际上是镜像的。同样,在主从存在单点故障瓶颈的情况下。请建议,是否有任何替代方法可以提供高可用性,因为我们的应用程序是读/写密集型的。所以我们需要将负载分布在多个节点上。在读/写操作的情况下,数据应该根据复制因子分布/聚合到多个服务器。如何使用mariaDB实现。t 分布式,实际上是镜像的。同样,在主从存在单点故障瓶颈的情况下。请建议,是否有任何替代方法可以提供高可用性,因为我们的应用程序是读/写密集型的。所以我们需要将负载分布在多个节点上。在读/写操作的情况下,数据应该根据复制因子分布/聚合到多个服务器。如何使用mariaDB实现。
解决方案
考虑一个 3 节点 Galera 集群,每个节点都进行写入。
对于这些节点中的每一个,挂起任意数量的只读从站。
如果你真的需要分片(因为需要比 Galera 提供的更多的写入扩展),那么设置多个 Galera 集群,每个集群包含一小部分数据。然后在它前面放置一个代理,将流量引导到主集群。
同时,打开低值的slowlog,long_query_time
看看是否可以加快查询速度。
推荐阅读
- android - 有安卓键盘监听器吗?
- terminal - 如何在不丢失分辨率的情况下让 neofetch girl 显示?
- c# - 如何在 c# Winforms 中从另一个窗体中捕获或获取 e.cancel 属性
- sql-server-2019 - 可以在不实际拆分为两个表的情况下垂直分区表吗?
- dockerfile - 如何在字符串 docker 中使用环境变量
- python - 我可以在 TRY 和 EXCEPT 子句中添加 IF 子句吗
- python - python-binance order_limit_buy() APIError(code=-1013): Filter failure: LOT_SIZE
- java - org.hibernate.tool.schema.spi.CommandAcceptanceException:执行 DDL 创建表索引时出错
- r - 根据条件创建新列
- web-services - 使用 API 在 adobe connect 中获取所有会议参与者的信息