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