我有一个设置是多个数据库(每个租户一个)住在同一个mariadb服务器(或集群)中。目标是保护mariadb到多个连接,但也从多个连接到每个数据库。基本上在数据库级别限制每个租户而不影响其他租户。
示例:tenant1数据库遭受重创并限制为总共10个连接。其他连接排队。同时,tenant2可以继续正常工作,因为它没有达到任何限制,因此不受队列的影响。
我知道如果你有一个数据库被多个应用程序命中,HAProxy很棒,因为你可以在HAProxy中排队连接,而不是在数据库中达到硬限制,并且必须在应用程序中处理它。
所以问题是,HAProxy可以用作同一集群中多个数据库的前端(可能使用自己的数据库凭据),并允许每个数据库限制连接。或者你需要多个HAProxy服务器(每个租户一个)?
答案 0 :(得分:0)
另一种方法是设置单独的VM,每个VM都有一个MySQL实例。然后通过CGroups限制访问。使用这种方法,除非你也有一些复制,否则HAProxy(etc)是不相关的。
CGroups具有每个VM可以获得至少一定百分比的功能。各种资源(CPU,网络,I / O)。当系统太忙时,该百分比变为最大值。如果闲置,用户可以使用超过他们的份额。
您已设置VARIABLE
max_user_connections
?