点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
适用场景
现在我们介绍一款基于ProxySQL中间件实现业务数据读写分离的方案,是一个可以实现MySQL读写分离的轻量级工具,是一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现数据的读写分离。
ProxySQL简介
ProxySQL是由C++语言开发,可以实现MySQL数据读写分离的轻量级工具,一款MySQL数据库的开源中间件产品,轻量级但性能优异(支持处理千亿级数据),具有如下功能:
不支持分表,可以分库,但是利用规则配置实现分表。
技术架构
MySQL、Keepalived安装
ProxySql安装详细步骤
#yum install openssl openssl-devel kernel-devel gcc gcc-c++ -y
#yum install perl-DBI -y
#yum install perl-DBD-MySQL -y
#yum install perl-Time-HiRes -y
#yum install perl-IO-Socket-SSL -y
#yum install -y proxysql-1.4.8-1-centos7.x86_64.rpm
#mkdir -p /var/lib/proxysql
#chown -Rf mysql.mysql /usr/share/proxysql/
#chown -Rf mysql.mysql /var/lib/proxysql
#chown mysql.mysql /etc/proxysql.cnf
#systemctl start proxysql.service
mysql -uadmin -padmin -h127.0.0.1 -P6032
mysql>insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(1, 192.168.100.1,3306,1,Write Group);
mysql>insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(2, 192.168.100.2,3306,1,Read Group);
mysql>insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(2, 192.168.100.3,3306,1,Read Group);
mysql>insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(2, 192.168.100.4,3306,1,Read Group);
GRANT ALL ON *.* TO shsnc@192.168.% IDENTIFIED BY 1qaz!QAZ;
mysql>insert into
mysql_users(username,password,default_hostgroup,transaction_persistent)values(shsnc,1qaz!QAZ,1,1);
mysql>GRANT SELECT ON *.* TO monitor@192.168.%
IDENTIFIED BY MonitoR;
mysql>set mysql-monitor_username=monitor;
mysql>set mysql-monitor_password=MonitoR;
mysql>insert into
mysql_query_rules(rule_id,active,match_digest,destination_ho
stgroup,apply)values(1,1,^SELECT.*FOR UPDATE$,1,1);
mysql>insert into
mysql_query_rules(rule_id,active,match_digest,destination_ho
stgroup,apply)values(2,1,^SELECT,2,1);
mysql>load mysql users to runtime;
mysql>load mysql servers to runtime;
mysql>load mysql query rules to runtime;
mysql>load mysql variables to runtime;
mysql>load admin variables to runtime;
mysql>save mysql users to disk;
mysql>save mysql servers to disk;
mysql>save mysql query rules to disk;
mysql>save mysql variables to disk;
mysql>save admin variables to disk;
mysql>select * from stats_mysql_query_digest;
mysql>select * from stats_mysql_processlist ;
mysql>select * from runtime_mysql_servers;
$less /var/lib/proxysql/proxysql.log
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129148.html
摘要:读写分离中间件具有独立的。变量语句将被广播考虑到节点间数据一致性问题,只会分发到主节点。节点健康检查,提升数据库系统可用性。UCloud MySQL云数据库读写分离 背景 数据显示,关系型数据库在OLTP业务下96.87%都在等待读I/O,而处理器计算仅仅占了5.3%,这说明要提高数据库的QPS性能,关键的一点是提高系统的IO能力。 另一个数据表明, 大多数业务对数据库的访...
摘要:利用快速构建系统。构建系统和的安装本文不再赘述,直接开始动手构建系统。分别为和,用于读写组,用于只读组。最后配置的监控服务可选,非必须至此,一个全部基于开源应用的简易系统就构建好了。利用ProxySQL、MySQL、ClickHouse快速构建HTAP系统。1. 关于ClickHouse企业里随着数据量的增加,以及日趋复杂的分析性业务需求,主要适用于OLTP场景的MySQL压力越来越大。多年...
摘要:我这里的实验环境单机单主,已经配置好了读写分离策略。这些都不是本文的重点,就一带而过吧。我下面只贴基于指纹的阻断的配置。我这里的实验环境:单机proxysql+mgr单主,已经配置好了读写分离策略。这些都不是本文的重点,就一带而过吧。我下面只贴基于sql指纹的阻断的配置。我们这里先查看下当前proxysql的 query rule表nonerule_idactivedigestmatch_p...
摘要:我这里的实验环境单机单主,已经配置好了读写分离策略。这些都不是本文的重点,就一带而过吧。我下面只贴基于指纹的阻断的配置。我这里的实验环境:单机proxysql+mgr单主,已经配置好了读写分离策略。这些都不是本文的重点,就一带而过吧。我下面只贴基于sql指纹的阻断的配置。我们这里先查看下当前proxysql的 query rule表nonerule_idactivedigestmatch_p...
阅读 1356·2023-01-11 13:20
阅读 1707·2023-01-11 13:20
阅读 1215·2023-01-11 13:20
阅读 1906·2023-01-11 13:20
阅读 4165·2023-01-11 13:20
阅读 2757·2023-01-11 13:20
阅读 1402·2023-01-11 13:20
阅读 3671·2023-01-11 13:20