读写分离和负载均衡

为什么读写分离,减少主库由于读压力造成负载,将读操作放到从服务器中,写操作必须在主数据库中

 

由程序实现读写分离

由中间件来实现读写分离

 

由程序实现分离:

优点:由开发人员控制什么查询在从库执行,因此比较灵活

由程序直接连接数据库,所有性能损耗少

缺点:增加开发人员工作量,使程序代码复杂,难维护;

人为控制,容易出现错误

 

 

中间件实现读写分离:

中间件工具:mysql-proxy(未正式发布)   maxScale

优点:中间件根据查询语法分析,自动完成读写分离

对程序透明,对于以有程序不用做任何调整

缺点:由于增加中间层,所有查询效率有损耗

对于延迟敏感业务无法自动在主库执行

 

 

 

如何实现负载均衡:

软件 :LVS Haproxy MaxScale  硬件:F5

 

MaxScale插件:

读写分离和负载均衡_第1张图片

安装:

读写分离和负载均衡_第2张图片

在主数据库建立maxscale连接服务器的账号:create user sclemon@'192.168.3.%' identified by '123456';

grant replication slace, replication client on *.* to scalemon@'192.168.3.%';     (用于监控模块)

建立路由模块的账号:create user maxscale@'192.168.3.%' identified by '123456';

grant select on mysql.* to maxscale@'192.168.3.%';

 

maxscale密码加密:

maxkeys /var/lib/maxscale/ 123456             //会生成加密字符串

 

修改maxscale配置文件

cd /etc

vim maxscale.cnf

读写分离和负载均衡_第3张图片

读写分离和负载均衡_第4张图片

读写分离和负载均衡_第5张图片

读写分离和负载均衡_第6张图片

读写分离和负载均衡_第7张图片

 读写分离和负载均衡_第8张图片

启动maxscale

maxscale --config=/etc/maxscale.cnf

登陆maxscale命令行界面

maxadmin --user=admin --password=mariadb

进入maxscale命令行查看启动哪些服务:

list servers

读写分离和负载均衡_第9张图片

show dbusers "Read-Write Service"

查看有哪些用户

读写分离和负载均衡_第10张图片

你可能感兴趣的:(mysql)