MHA配合Atlas实现读写分离

MySQL读写分离
当需要进行读写分离时,必须先进行部署主从复制

MySQL读写分离类型

基于程序代码的内部实现

在代码中根据select、insert进行路由分类,在目前生产环境应用最广泛,优点是性能好,直接在程序代

码中实现,不需要额外的硬件支持,缺点是需要开发人员进行操作

基于中间代理层实现

代理一般位于客户端和服务端之间,代理服务器接收到客户端请求后通过判断后转发到后端数据库,有

两个代表性程序:Mysql-proxy、Amoeba(变形虫)

Atlas 介绍
Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。

它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。

360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。

基于GTID实现MHA高可用 实验

1.三台centos分别部署MySQL 5.7.26

yum install -y gcc gcc-c++ make ncurses-devel autoconf lrzsz

mkdir -p /server/tools

cd /server/tools/

rz

tar zxf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

mkdir /application

mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql

useradd -s /sbin/nologin mysql

vim /etc/profile

export PATH=/application/mysql/bin:$PATH

source /etc/profile

mkdir /data

chown -R mysql.mysql /application/*

chown -R mysql.mysql /data

mkdir -p /data/mysql/data

chown -R mysql.mysql /data

mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

cat >/etc/my.cnf <<EOF

[mysqld]

user=mysql

basedir=/application/mysql

datadir=/data/mysql/data

socket=/tmp/mysql.sock

server_id=10

port=3306

[mysql]

socket=/tmp/mysql.sock

EOF

cat >/etc/systemd/system/mysqld.service <<EOF

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)Documentation=MySQL :: MySQL 8.0 Reference Manual :: 2.5.9 Managing MySQL Server with systemd

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE = 5000

EOF

mysqld_safe --skip-grant-tables --skip-networking &

mysql

flush privileges;

alter user root@'localhost' identified by '1


__EOF__

本文作者Crushz
本文链接https://www.cnblogs.com/Crushz-2024/p/18390309.html
关于博主:Crushz
版权声明:转载请注明来源哟~ QAQ
声援博主:UP UP UP !!!
posted @   Crushz  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示