这是企业级应用,持久层架构方案的第三篇。在上一篇:企业级应用,持久层架构方案二(双主同步高可用二)中。已经实现了双主同步高可用,解决了高可用的问题。还没有解决高性能问题,目前读写都是在主服务器上,会导致主服务器压力大,性能低。那么在这一篇中,来看一看如何通过读写分离,实现持久层的高性能访问。
1.架构图
2.安装从库
2.1.hadoop003节点
2.1.1.安装mysql
#第一步:通过yum在线安装 yum install mysql mysql-server mysql-devel #第二步:启动mysql服务 /etc/init.d/mysqld start ##检查mysql运行状态状态 /etc/init.d/mysqld status #第三步:通过脚本配置mysql /usr/bin/mysql_secure_installation #第四步:远程访问授权 mysql -uroot -p123456 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges; #第五步:设置开机自动启动 chkconfig mysqld --list chkconfig mysqld on
2.1.2.编辑my.cnf
#编辑文件 vi /etc/my.cnf ------------------------------------------------------------ [mysqld] server-id = 3 #服务唯一表示id slave-skip-errors = all #忽略所有复制产生的错误 -------------------------------------------------------------- #重新启动服务 service mysqld restart
2.1.3.同步配置
#登录mysql mysql -uroot -p123456 mysql> change master to -> master_host='192.168.80.40', -> master_user='rep', -> master_password='123456', -> master_log_file='mysql-bin.000003', -> master_log_pos=106; mysql> start slave; #启动同步
2.2.hadoop004节点
2.2.1.安装mysql
#第一步:通过yum在线安装 yum install mysql mysql-server mysql-devel #第二步:启动mysql服务 /etc/init.d/mysqld start ##检查mysql运行状态状态 /etc/init.d/mysqld status #第三步:通过脚本配置mysql /usr/bin/mysql_secure_installation #第四步:远程访问授权 mysql -uroot -p123456 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges; #第五步:设置开机自动启动 chkconfig mysqld --list chkconfig mysqld on
2.2.2.编辑my.cnf
#编辑文件 vi /etc/my.cnf ------------------------------------------------------------ [mysqld] server-id = 4 #服务唯一表示id slave-skip-errors = all #忽略所有复制产生的错误 -------------------------------------------------------------- #重新启动服务 service mysqld restart
2.2.3.同步配置
#登录mysql mysql -uroot -p123456 mysql> change master to -> master_host='192.168.80.40', -> master_user='rep', -> master_password='123456', -> master_log_file='mysql-bin.000003', -> master_log_pos=800; mysql> start slave; #启动同步
3.综合测试案例
说明:在主库A创建数据库oa,并进行创建数据库表,添加数据等操作。确认可以自动同步到从库C和D。
#创建数据库 create database oa; #使用test数据库 use oa; #创建一张表 create table t_user(id bigint primary key auto_increment,name varchar(20))ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; #插入数据 insert t_user(name) values('zhangs'); #查询数据 select * from t_user;