搭建 MySQL 读写分离(内附源码包)
admin
2023-04-23 00:22:10
0

Amoeba简介
Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。座落与 Client、DB Server(s)之间,对客户端透明。具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。 通过Amoeba能够完成多数据源的高可用、负载均衡、数据切片的功能,目前Amoeba已在很多企业的生产线上面使用。

读写分离原理图
搭建 MySQL 读写分离(内附源码包)

实验环境
搭建 MySQL 读写分离(内附源码包)

相关软件包链接:https://pan.baidu.com/s/1TANw0pEGgnxgEfGNU9hsGQ 密码:0s4h

实验目标:
成功搭建mysql读写分离

实验步骤
一、先搭建主从复制,可参考https://blog.51cto.com/13760351/2173559
二、配置amoeba服务
1.关闭防火墙,安全性

setenforce 0
systemctl start firewalld.service

2.在主机amoeba上安装java环境

cp jdk-6u14-linux-x64.bin /usr/local/ #将jdk软件包复制到Linux系统中
cd /usr/local
chmod +x jdk-6u14-linux-x64.bin #赋予执行权限
./jdk-6u14-linux-x64.bin    #执行jdk,输入yes,然后按enter
mv jdk1.6.0_14/ /usr/local/jdk1.6  #将jdk软件移动到此目录下

3.配置系统环境变量

vim /etc/profile #配置系统环境变量

export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$AMOEBA_HOME/bin

source /etc/profile #刷新,使系统环境变量生效

4.安装并配置amoeba软件

mkdir /usr/local/amoeba  
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
chmod -R 755 /usr/local/amoeba/  #赋予权限
/usr/local/amoeba/bin/amoeba   #启动amoeba

5.配置amoeba读写分离
(1)在master,slave1,slave2上添加权限开放给amoeba访问
grant all on *.* to test@'192.168.65.%' identified by '123.com';

(2)编辑amoeba.xml配置文件

cd /usr/local/amoeba  #回到amoeba服务器
vim conf/amoeba.xml

搭建 MySQL 读写分离(内附源码包)
搭建 MySQL 读写分离(内附源码包)

(3)编辑dbServers.xml 配置文件
vim conf/dbServers.xml
搭建 MySQL 读写分离(内附源码包)
搭建 MySQL 读写分离(内附源码包)

(4)启动amoeba软件

/usr/local/amoeba/bin/amoeba start&
netstat -anpt | grep java

搭建 MySQL 读写分离(内附源码包)

三.测试客户端

  1. 安装mysql客户端
    yum install -y mysql

2.通过代理访问mysql
mysql -u amoeba -p123456 -h 192.168.65.162 -P8066

3.在MASTER上创建一个表

mysql -u root -p
mysql> use hhhh;
Mysql> create table zz (id int(10),name varchar(10),address varchar(20))

4.在主服务器上插入数据
insert into zz values('1','zhang','this_is_master');
搭建 MySQL 读写分离(内附源码包)

5.在从服务器1上插入数据
insert into zz values('2','zhang','this_is_slave1');
搭建 MySQL 读写分离(内附源码包)

6.在从服务器2上插入数据
insert into zz values('3','zhang','this_is_slave2');
搭建 MySQL 读写分离(内附源码包)

7.在客户端上测试
搭建 MySQL 读写分离(内附源码包)
8.在客户端插入数据
insert into zz values('5','zhang','write_test');
插入的语句在客户端查询不到,只有在master上看到,证明写操作在master服务器上面

9.在master服务器查看
搭建 MySQL 读写分离(内附源码包)

由此验证,在通过客户端连接数据库后写入的数据都在master,然后同步给slave1,slave2上,所有读操作都分摊给了slave从服务器,用来分担数据库压力。

相关内容

热门资讯

伊朗德黑兰地区发生4.6级地震 总台记者获悉,当地时间5月12日23时47分左右,伊朗德黑兰地区发生4.6级地震。震中位于德黑兰省和...
被科威特指控“武装渗透”布比延... 新华社科威特城/德黑兰5月12日电(记者尹炣 陈霄)科威特政府12日指认,伊朗伊斯兰革命卫队多名武装...
酒吧办护士制服派对被指低俗,当... 据媒体报道,5月12日国际护士节,浙江衢州有网友发帖称,当地APK·ELITE CLUB酒吧举办所谓...
珠海冠宇获得发明专利授权:“一... 证券之星消息,根据天眼查APP数据显示珠海冠宇(688772)新获得一项发明专利授权,专利名为“一种...
大华申请数据写入方法专利,提高... 国家知识产权局信息显示,浙江大华技术股份有限公司申请一项名为“数据写入方法、电子设备及计算机可读存储...
现在,赖清德更焦虑了 执笔/月半刀&宝刀刀&胡一刀5月13日,美国总统特朗普将开启访华行程。外界高度关注此次会晤中双方将如...
燃气发电与电池储能相结合,成为... 来源:市场资讯 (来源:i商周) 孟菲斯一座xAI数据中心的燃气轮机 人工智能的用电飙升,让数据中心...
景嘉微:JM11性能大幅提升,... 有投资者在互动平台向景嘉微提问:“董秘您好!关注到近期有用户反馈公司JM11显卡推出了适配windo...
原创 v... 影像的发展进一步推动,不少品牌推出了专业影像手机,拥有2亿像素摄像头、色彩还原摄像头、影像芯片、影像...
荣耀首款自研耳夹式耳机官宣即将... 快科技5月13日消息,日前,荣耀首席营销官关海涛宣布,荣耀全场景团队自研首款耳夹式耳机马上上市,并称...