当前位置: 首页 > article >正文

MHA携手Atlas:打造高效读写分离解决方案,引领数据库性能飞跃

  •  作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  •  座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  •  个人主页:团儿.-CSDN博客

目录

前言:

正文:

1. Atlas 介绍

注意:

2.安装配置

复制atlas

启动atlas

3. Atlas功能测试

如果不做mha,需要在主服务器创建mha用户:

测试读操作:

db03 [(none)]>

测试写操作:mysql>

4. 生产用户要求

4.1  在主库中,创建用户

4.2. 在atlas中添加生产用户

5. Atlas基本管理

连接管理接口

查看数据库帮助

查看数据库节点状态

关闭、开启节点

删除、添加从节点

添加白名单

删除白名单

保存配置


前言:

在数字化时代,数据库的性能和稳定性对于企业而言至关重要。随着业务规模的扩大和数据量的增长,单一的数据库读写模式已经难以满足高性能和高可用的需求。读写分离作为一种常见的数据库优化策略,通过将读操作和写操作分离到不同的数据库实例上,从而减轻主库的压力,提升整体系统的处理能力和响应速度。

MHA(Master High Availability Manager)和Atlas作为两款备受推崇的数据库高可用性和读写分离解决方案,各自具备独特的优势。MHA以其强大的主从切换和故障恢复能力,为数据库的高可用性提供了坚实的保障;而Atlas则通过智能化的读写分离和负载均衡策略,进一步优化了数据库的读写性能。

将MHA与Atlas相结合,可以充分发挥两者的优势,打造出一个高效、稳定且易于管理的读写分离解决方案。本文旨在深入探讨MHA配合Atlas实现读写分离的原理、步骤以及实际应用效果,帮助读者更好地理解和应用这一技术方案,提升数据库的性能和稳定性。

接下来,我将从MHA和Atlas的基本介绍入手,逐步剖析两者如何协同工作,实现读写分离的目标。希望通过本文的阐述,能够为读者在数据库架构设计和优化方面提供一些有益的参考和启示。


正文:

1. Atlas 介绍

Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。
它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。
360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。
下载地址
https://github.com/Qihoo360/Atlas/releases

注意:

1、Atlas只能安装运行在64位的系统上
2、Centos 5.X安装 Atlas-XX.el5.x86_64.rpm,Centos 6.X安装Atlas-XX.el6.x86_64.rpm。
3、后端mysql版本应大于5.1,建议使用Mysql 5.6以上

2.安装配置

复制atlas

rpm -ivh Atlas-2.2.el6.x86_64.rpm

cd /usr/local/mysql-proxy/conf
mv test.cnf test.cnf.bak
vi test.cnf
[mysql-proxy]
admin-username = user
admin-password = pwd
proxy-backend-addresses = 192.168.8.9:3306
proxy-read-only-backend-addresses = 192.168.8.10:3306,192.168.8.11:3306
pwds = repl:3yb5jEku5h4=,mha:O2jBXONX098=
daemon = true
keepalive = true
event-threads = 8
log-level = message
log-path = /usr/local/mysql-proxy/log
sql-log=ON
proxy-address = 0.0.0.0:33060
admin-address = 0.0.0.0:2345
charset=utf8

启动atlas

/usr/local/mysql-proxy/bin/mysql-proxyd test start
ps -ef |grep proxy


3. Atlas功能测试

如果不做mha,需要在主服务器创建mha用户:

grant all on *.* to mha@'192.168.8.%' identified by 'mha';

测试读操作:

mysql -umha -pmha  -h 192.168.8.11 -P 33060 

db03 [(none)]>

select @@server_id;

测试写操作:
mysql>

begin;select @@server_id;commit;


4. 生产用户要求

开发人员申请一个应用用户 app(select  update  insert)  密码123456,要通过10网段登录

4.1  在主库中,创建用户

grant select ,update,insert on *.* to app@'192.168.8.%' identified by '123456';

4.2. 在atlas中添加生产用户

/usr/local/mysql-proxy/bin/encrypt  123456

     ---->制作加密密码

vim /usr/local/mysql-proxy/conf/test.cnf
pwds = repl:3yb5jEku5h4=,mha:O2jBXONX098=,app:/iZxz+0GRoA=

/usr/local/mysql-proxy/bin/mysql-proxyd test restart

[root@db03 conf]#

mysql -uapp -p123456  -h 192.168.8.11 -P 33060


5. Atlas基本管理

连接管理接口

mysql -uuser -ppwd -h127.0.0.1 -P2345

查看数据库帮助

select * from help;

查看数据库节点状态

SELECT * FROM backends;

关闭、开启节点

set offline 2;
set online 2;

删除、添加从节点

REMOVE BACKEND 3;
ADD SLAVE 192.168.8.11:3306;

添加白名单

add client 192.168.8.11;

删除白名单

remove client 192.168.8.11;

保存配置

save config;

期待您的关注~


http://www.kler.cn/news/339274.html

相关文章:

  • C++学习笔记----8、掌握类与对象(四)---- 不同类型的数据成员(2)
  • Sym-NCO:利用对称性进行神经组合优化
  • 餐饮生存战:平价消费时代,别盲目卷低价
  • 2.4Mybatis——缓存机制
  • 算法:前缀和算法模版
  • [笔记] 仿射变换性质的代数证明
  • PyQt入门指南一 框架介绍
  • 一分钟掌握 Java22 新特性
  • STM32-HAL库 驱动DS18B20温度传感器 -- 2024.10.8
  • 数据结构——排序(插入排序)
  • VAD 论文学习
  • 每日OJ题_牛客_分组_枚举+二分_C++_Java
  • OpenFeign 工作原理源码记录
  • OpenFegin
  • 【多重循环在Java中的应用】
  • 【如何学习计组】——基本概念与原理
  • 大数据新视界 --大数据大厂之数据血缘追踪与治理:确保数据可追溯性
  • windows配置java环境变量
  • 基于java+springboot的宠物商店、宠物管理系统
  • 大数据新视界 --大数据大厂之 Presto 性能优化秘籍:加速大数据交互式查询