0

我在 Ubuntu 系统上设置了一个两节点 MariaDB Galera 集群。一个简单的应用程序使用 MaxScale 连接到数据库并且工作正常。但是,当集群中当前正在使用的节点(例如节点 1)发生故障时,应用程序会收到错误,例如 1927 或 1045。收到此错误后,应用程序会尝试再次连接到数据库,但多次失败,但一旦从节点 1 到节点 2 的故障转移完成,并且 MaxScale 将数据库连接到节点 2,就会成功。在我的集群环境中,连接试验持续时间范围为 20 到 50 秒。

我的问题是是否有任何 MaxScale 连接超时参数可用于将连接超时指定为某个值,例如 50 秒,以便应用程序只为新连接尝试一次,而不是多次尝试。(我在数据库的 JDBC URL 中使用了参数 connectTimeout,但它对我的应用程序无效,我认为这是意料之中的。)

4

1 回答 1

1

MaxScale 发送错误很可能是因为没有可用的主服务器。MaxScale 2.2 无法防止此错误,需要重新连接客户端。

在 MaxScale 2.3 中,将提供一项新功能,该功能允许与您描述的行为类似(请参阅MXS-1501)。

如果您正在执行只读请求,启用master_failure_mode=error_on_write. 即使没有可用的主服务器,这也将允许完成只读请求。

于 2018-05-28T07:13:27.347 回答