使用MariaDB Galera群集配置HA代理

使用MariaDB Galera群集配置HA代理,mariadb,galera,Mariadb,Galera,我有一个3节点的MariaDB Galera集群(MDB-001、MDB-002、MDB-003),带有HA代理和两个数据库(DB1、DB2) 我通过HA代理连接到MariaDB Galera群集,HA代理配置为将连接路由到负载最少的节点 现在我需要这样一种配置,DB1上的事务应该转到MDB-001,DB2上的事务应该转到MDB-002。 在MDB-001停机的情况下,DB1的连接应路由至最少连接节点,同样,在MDB-002停机的情况下,DB1的连接应路由至最少连接节点 DB2的连接应该路由到最

我有一个3节点的MariaDB Galera集群(MDB-001、MDB-002、MDB-003),带有HA代理和两个数据库(DB1、DB2)

我通过HA代理连接到MariaDB Galera群集,HA代理配置为将连接路由到负载最少的节点

现在我需要这样一种配置,DB1上的事务应该转到MDB-001,DB2上的事务应该转到MDB-002。 在MDB-001停机的情况下,DB1的连接应路由至最少连接节点,同样,在MDB-002停机的情况下,DB1的连接应路由至最少连接节点 DB2的连接应该路由到最少的连接节点


您能帮我解释一下设置这种配置的方法吗。

我怀疑这样明确地引导流量是否有任何好处。只需让任何事务转到任何节点即可。Galera对此很满意。我正在尝试只在一个节点上写入数据库,以避免死锁。这无法解决问题。即使所有写操作都要到一个节点,仍然有可能出现死锁。您必须准备好处理死锁。在不同节点上更新相同记录的情况下,第一个提交的事务将永久保存到数据库,其他事务将获得死锁错误。但是,如果同一节点上的多个连接更新了同一条记录,则第一个事务将锁定该记录,其他连接将等待50秒(innodb_lock_wait_timeout的默认值),然后出错,超过消息lock wait timeout。因此,通过根据我的应用程序需要设置innodb_lock_wait_timeout,我希望将数据库的所有写入只路由到一个节点。除非您每秒执行数百个事务,或者在
BEGIN
COMMIT
之间花费大量时间,您可能不会遇到死锁或锁定,您的等待频率不会超过每小时一次。我声称(请随意证明我是错的),你正在尝试优化一些太少而不必担心的东西。