【问题标题】:Load protecting a multi database mariadb cluster with HAProxy使用 HAProxy 对多数据库 mariadb 集群进行负载保护
【发布时间】:2015-11-28 09:12:08
【问题描述】:

我有一个设置是多个数据库(每个租户一个)位于同一个 mariadb 服务器(或集群)中。目标是保护 mariadb 免受多个连接的影响,同时也保护每个数据库的多个连接。基本上在数据库级别限制每个租户而不影响其他租户。

示例:tenant1 数据库受到重创,总共限制为 10 个连接。其他连接排队。同时,tenant2 可以继续正常工作,因为它没有达到任何限制,因此不受队列的影响。

我知道如果您有一个数据库被多个应用程序访问,HAProxy 非常棒,因为您可以在 HAProxy 中排队连接,而不是达到数据库中的硬限制并不得不在应用程序中处理它。

所以问题是,HAProxy 是否可以用作同一集群中多个数据库的前端(可能使用它们自己的数据库凭据)并允许限制每个数据库的连接。或者您是否需要多个 HAProxy 服务器(每个租户一个)?

【问题讨论】:

  • MySQL/MariaDB 中的帐户资源限制功能是否适合您? - dev.mysql.com/doc/refman/5.6/en/user-resources.html
  • @tan-hong-tat 我查看了帐户资源限制,但相信如果达到限制并且需要在软件中处理错误,那只会引发错误。我很喜欢他们只是排队的特点。
  • @rick-james 可以。但是一直没能找到任何关于排队和多模式的信息。

标签: mysql multi-tenant mariadb haproxy


【解决方案1】:

另一种方法是设置单独的虚拟机,每个虚拟机都有一个 MySQL 实例。然后通过 CGroups 限制访问。使用这种方法,除非您也有一些复制,否则 HAProxy(等)是不相关的。

CGroups 的特点是每个 VM 都可以获得“至少一定比例”的各种资源(CPU、网络、I/O)。当系统太忙时,该百分比变为最大值。当其他空闲时,用户可以使用超过他们的份额。

你设置了VARIABLEmax_user_connections

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2015-09-21
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2018-11-13
    • 2018-05-15
    • 1970-01-01
    相关资源
    最近更新 更多