我在Ubuntu系统上设置了一个双节点MariaDB Galera集群。一个简单的应用程序使用MaxScale连接到数据库,它工作正常。但是当群集中当前正在使用的节点(例如节点1)失败时,应用程序会收到错误,例如1927或1045.收到此错误后,应用程序会再次尝试连接到数据库,但它会多次失败但是从节点1到节点2的故障转移完成后成功,MaxScale为节点2提供数据库连接。在我的集群环境中,连接试用持续时间范围为20到50秒。
我的问题是,是否存在任何MaxScale连接超时参数,我可以使用该参数将连接超时指定为某个值,例如50秒,以便应用程序只尝试一次新连接而不是多次尝试。 (我在JDBC URL中为数据库使用了参数connectTimeout,但它对我的应用程序无效,我认为这是预期的。)
答案 0 :(得分:1)
MaxScale最有可能发送错误,因为没有可用的主服务器。使用MaxScale 2.2无法阻止此错误,并且需要客户端重新连接。
在MaxScale 2.3中,将提供一项新功能,允许与您描述的内容类似的行为(请参阅MXS-1501)。
如果您正在执行只读请求,则启用master_failure_mode=error_on_write
可能会有所帮助。即使没有可用的主服务器,这也允许执行只读请求。