目前,我正在研究使用许多服务器(linux centos)的galera集群。扩展读取流量非常有效且容易,但扩展写入似乎很困难(没有改进)。
我使用了许多服务器,使用 maxscale 作为路由器(Readconnroute)将写入查询并行分发到所有服务器。但是写入速度并没有提高。
一种选择是在 MariaDB中使用Spider 存储引擎。它支持表分片,并且与 Galera 集群相比应该提高写入速度。另一方面,您将失去 Galera 集群的高可用性,转而支持提高写入速度。
这张由 Kentoku Shiba 在 Spider 上设置的幻灯片很好地概述了 Spider 如何提高写入可扩展性。
Galera 不会提高写入速度,因为所有服务器都必须处理所有写入。MySQL 在扩展写入方面非常糟糕。您可以使用代理来完成(就像您提到的 maxscale 一样)。然后你可以分片你的数据。您必须为每个表选择一个密钥才能将密钥分发到多个服务器。
我建议使用另一个 nosql 服务器,即 mongodb,它具有内置的分片功能,可用于编写繁重的用例。对于这项工作,Mongodb 比 mysql 更容易设置和维护。