[英]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.