使用Percona 雷竞技下载官网XtraDB群集操作符并查看PMM,主机组10(写入器)似乎得到了几乎所有的问题/查询,只有很少的问题/查询到11(读取器)。

Hostgroup 11:
图像

主机组10(节点0):
图像

我也试着调整主机组查询路由:

Proxysql: configuration: | datadir="/var/lib/ Proxysql " mysql_query_rules:({rule_id=1 active=1 match_pattern="^SELECT .* FOR UPDATE$" cache_ttl=5000 apply=1主机组=10 comment="Writer"}, {rule_id=2 active=1 match_pattern="^INSERT INTO|UPDATE|DELETE" cache_ttl=1000 apply=1主机组=10 comment="Writer"}, {rule_id=4 active=1 match_pattern="^SELECT" cache_ttl=5000 apply=1主机组=11},{rule_id=5 active=1 match_pattern="SELECT .*" cache_ttl=5000 apply=1主机组=11},{rule_id=6 active=1 match_pattern="。*" apply=1主机组=10})

我是不是遗漏了什么?

似乎您错过了向阅读器主机组发送普通select的规则。如果用户的默认HG是10,你有S for U和I/U/D也会变成10,没有其他规则,那么是的,所有东西都会变成HG 10。您需要一个将查询路由到HG 11的规则。

看来我得再检查一下我的规矩了。
我是基于Percona的默认设置,10为写雷竞技下载官网入器,11为读取器,这是正确的,对吧?

此外,我注意到即使没有我的主机组配置(使用默认的开箱使用),查询的不平衡,大多数(如果不是所有)读/写都将前往PXC-0(默认的主/写器)…

是的,这些hg是正确的。但是您需要了解缺省HG应用于用户帐户。因此用户X执行的任何查询都会被发送到该用户的默认HG除非有一个规则将查询发送到另一个HG。是的,有一个不平衡,因为你没有一个规则将某些查询重定向到HG 11。

我没有看到任何关于Percona用ProxySQL实现主机组的文档雷竞技下载官网。

我甚至看不出HG 10和HG 11是在ProxySQL配置中设置的。
为什么不默认情况下将读查询定向到所有节点(HG 11/10)并写入10 ?而不是开箱,似乎HG 10(节点0)是得到所有的读/写默认?

我没有得到关于每个用户帐户的信息,同样,我没有看到任何关于在没有指定配置的情况下如何默认设置的文档(就像我做的那样)。

供你参考,我更新了我的规则:

配置:| datadir="/var/lib/proxysql" mysql_variables= {connect_retries_on_failure=10 default_query_timeout=36000000} mysql_query_rules:({rule_id=1 active=1 match_pattern="^SELECT .* FOR UPDATE$" cache_ttl=5000 apply=1主机组=10 comment="Writer"}, {rule_id=2 active=1 match_pattern="^INSERT INTO|UPDATE|DELETE" cache_ttl=1000 apply=1主机组=10 comment="Writer"}, {rule_id=4 active=1 match_pattern="^SELECT" cache_ttl=5000 apply=1主机组=11},{rule_id=5 active=1 match_pattern="SELECT .*" cache_ttl=5000 apply=1主机组=11},{rule_id=6 active=1 match_pattern="。*" apply=1主机组=10},{rule_id=7 active=1 match_pattern="^SELECT[^()]*$" cache_ttl=5000 apply=1主机组=11 comment="Reader"},)

我看到HG 10的ACTIVE THREADS较低,我认为这可以帮助在我的读副本上更均匀地分配负载,这可以减少我的写入器节点上的活动线程数量。

MySQL线程缓存的巨大变化:

但似乎MySQL问题HG 11已经下来为新的配置?

你可能需要在他们的网站上阅读ProxySQL的文档来了解更多细节。

这是因为实际上没有任何“默认配置”。您必须提供一些最低配置参数,比如用户、hg中的服务器和基本规则。如果没有任何规则,所有查询都会转到用户的默认HG。

你不需要规则2、规则5或规则6。任何不匹配规则的查询都将通过用户的默认HG。

您使用什么用户连接到ProxySQL?我们说它是" bob "。在ProxySQL中,在mysql_users表中,存在“bob”的记录以及该帐户的密码。您的应用程序正在登录到proxysql;不是mysql。对于proxysql中的“bob”用户帐户,存在一个默认HG,在本例中为10。所有在“bob”帐户下执行的查询将路由到HG 10,除非有一个查询规则将它路由到不同的HG。

1像