繁体   English   中英

Kubernetes 上的 ProxySQL 与 MaxScale

[英]ProxySQL vs MaxScale on Kubernetes

我希望在 Kubernetes 上为我们的 MariaDB 数据库设置一个写入代理。 我们目前遇到的问题是我们的 3 主 galera 集群设置上只有一个写入主。 因此,即使我们的 pod 复制正确,如果我们的第一个节点出现故障,那么我们的其他两个 master 最终也会失败,因为它们无法被写入。

我看到这是使用 ProxySQL 或 MaxScale 进行写入代理的一个可能选项,但我不确定我是否正确阅读了它们的用途。 我是否有正确的想法希望在 Kubernetes 上部署这两个应用程序/服务中的任何一个来解决我的问题? 我能写到集群中的任何一个 Master 吗?

只要您使用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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM