mariadb Kubernetes上的ProxySQL与MaxScale之比较

1l5u6lss  于 2022-11-23  发布在  Kubernetes
关注(0)|答案(1)|浏览(173)

我想为Kubernetes上的MariaDB数据库设置一个写代理。我们目前遇到的问题是,我们在3个主加莱拉集群设置上只有一个写主。因此,即使我们的pod复制正常,如果我们的第一个节点出现故障,那么我们的其他两个主节点也会因为无法写入而失败。
我看到这是一个可能的选择,使用ProxySQL或MaxScale进行写代理,但我不确定我是否正确阅读了它们的用法。我是否有正确的想法,希望在Kubernetes上部署这两个应用程序/服务中的任何一个来解决我的问题?我是否能够写入集群中的任何一个主服务器?

gmol1639

gmol16391#

只要您使用readwritesplit路由器和galeramon监视器,MaxScale就可以选择要写入的服务器。
以下是MaxScale的配置示例,它对读取进行负载平衡,但将写入发送到一个节点:

[maxscale]
threads=auto

[node1]
type=server
address=node1-address
port=3306

[node2]
type=server
address=node2-address
port=3306

[node3]
type=server
address=node3-address
port=3306

[Galera-Cluster]
type=monitor
module=galeramon
servers=node1,node2,node3
user=my-user
password=my-password

[RW-Split-Router]
type=service
router=readwritesplit
cluster=Galera-Cluster
user=my-user
password=my-password

[RW-Split-Listener]
type=listener
service=RW-Split-Router
protocol=mariadbclient
port=4006

一次只在一个节点上执行写入操作的原因是,在多个加莱拉节点上执行写入操作不会提高写入性能,并且在提交事务时会导致冲突(应用程序似乎很少处理这些问题)。

相关问题