好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

proxysql的花式路由规则

admin> save mysql variables to disk;

然后重启ProxySQL。

service proxysql stop
service proxysql start

[root@node2 ~]# netstat -luntp|grep proxy
tcp 0 0 0.0.0.0:6032 0.0.0.0:* LISTEN 11543/proxysql
tcp 0 0 0.0.0.0:6033 0.0.0.0:* LISTEN 11543/proxysql
tcp 0 0 0.0.0.0:6034 0.0.0.0:* LISTEN 11543/proxysql

 

监听到不同端口,再去修改 mysql_query_rules 表

insert into mysql_query_rules(rule_id,active,proxy_port,destination_hostgroup,apply) values( 1, 1, 6033, 10, 1), ( 2, 1, 6034, 20, 1);

load mysql query rules to runtime;

save mysql query rules to disk;

1.1  mysql_query_rules表的介绍

rule_id :规则的id。 规则是按照rule_id的顺序进行处理的 。 active :只有该字段值为1的规则才会加载到runtime数据结构,所以只有这些规则才会被查询处理模块处理。 username :用户名筛选,当设置为非NULL值时,只有匹配的用户建立的连接发出的查询才会被匹配。 schemaname :schema筛选,当设置为非NULL值时,只有当连接使用 schemaname 作为默认schema时,该连接发出的查询才会被匹配。(在MariaDB/MySQL中,schemaname等价于databasename)。 flagIN,flagOUT :这些字段允许我们创建"链式规则"(chains of rules),一个规则接一个规则。 apply :当匹配到该规则时,立即应用该规则。 client_addr :通过源地址进行匹配。 proxy_addr :当流入的查询是在本地某地址上时,将匹配。 proxy_port :当流入的查询是在本地某端口上时,将匹配。 digest :通过digest进行匹配,digest的值在 stats_mysql_query_digest.digest 中。 match_digest :通过正则表达式匹配digest。 match_pattern :通过正则表达式匹配查询语句的文本内容。 negate_match_pattern :设置为1时,表示未被 match_digest 或 match_pattern 匹配的才算被成功匹配。也就是说,相当于在这两个匹配动作前加了NOT操作符进行取反。 re_modifiers :RE正则引擎的修饰符列表,多个修饰符使用逗号分隔。指定了 CASELESS 后,将忽略大小写。指定了 GLOBAL 后,将替换全局(而不是第一个被匹配到的内容)。为了向后兼容,默认只启用了 CASELESS 修饰符。 replace_pattern :将匹配到的内容替换为此字段值。它使用的是RE2正则引擎的Replace。注意,这是可选的,当未设置该字段,查询处理器将不会重写语句,只会缓存、路由以及设置其它参数。 destination_hostgroup :将匹配到的查询路由到该主机组。但注意,如果用户的 transaction_persistent=1 (见 mysql_users 表),且该用户建立的连接开启了一个事务,则这个事务内的所有语句都将路由到同一主机组,无视匹配规则。 cache_ttl :查询结果缓存的时间长度(单位毫秒)。注意,在ProxySQL 1.1中,cache_ttl的单位是秒。 reconnect :目前不使用该功能。 timeout :被匹配或被重写的查询执行的最大超时时长(单位毫秒)。如果一个查询执行的时间太久(超过了这个值),该查询将自动被杀掉。如果未设置该值,将使用全局变量 mysql-default_query_timeout 的值。 retries :当在执行查询时探测到故障后,重新执行查询的最大次数。如果未指定,则使用全局变量 mysql-query_retries_on_failure 的值。 delay :延迟执行该查询的毫秒数。本质上是一个限流机制和QoS,使得可以将优先级让位于其它查询。这个值会写入到 mysql-default_query_delay 全局变量中,所以它会应用于所有的查询。将来的版本中将会提供一个更高级的限流机制。 mirror_flagOUT和mirror_hostgroup :mirroring相关的设置,目前mirroring正处于实验阶段,所以不解释。 error_msg :查询将被阻塞,然后向客户端返回 error_msg 指定的信息。 sticky_conn :当前还未实现该功能。 multiplex :如果设置为0,将禁用multiplexing。如果设置为1,则启用或重新启用multiplexing,除非有其它条件(如用户变量或事务)阻止启用。如果设置为2,则只对当前查询不禁用multiplexing。默认值为 NULL ,表示不会修改multiplexing的策略。 log :查询将记录日志。 apply :当设置为1后,当匹配到该规则后,将立即应用该规则,不会再评估其它的规则(注意:应用之后,将不会评估 mysql_query_rules_fast_routing 中的规则)。 comment :注释说明字段,例如描述规则的意义。

 

proxysql的花式路由规则

标签:参数   tick   等价   git   dba   active   pat   事务   proxy   

查看更多关于proxysql的花式路由规则的详细内容...

  阅读:18次