小白到运维工程师自学之路 第四十三集 (mariadb读写分离)

一、读写分离的优点

1. 负载均衡:将读操作分散到多个从库上,可以有效地分担主库的读负载,提高系统的

并发处理能力。

2. 提高读性能:从库可以通过增加硬件资源或者优化查询语句等方式来提高读操作的性

能,从而提升系统的整体性能。

3. 高可用性:通过将读操作分散到多个从库上,即使主库发生故障,系统仍然可以继续

提供读服务,提高系统的可用性。

4. 数据保护:将读操作分离到从库上,可以避免误操作或者恶意操作对主库数据的影

响,提高数据的安全性。

二、amoeba简介

Amoeba是阿里巴巴集团旗下的一款分布式操作系统。它是为了满足阿里巴巴集团大规

模分布式计算和存储需求而开发的。Amoeba具有高可靠性、高性能、高可扩展性等特

点,可以支持大规模的数据处理和存储。它在阿里巴巴集团内部被广泛应用于各种业务

场景,包括电商、云计算、大数据等领域。

三、工作原理

1. 主从复制:在MySQL中,可以通过主从复制的方式将主数据库的数据同步到从数据

库上。主数据库负责处理写操作,而从数据库负责处理读操作。

2. 主数据库:主数据库是负责接收和处理所有的写操作的服务器。当有写操作发生时,

主数据库会将写操作的日志记录下来,并将这些日志传输给从数据库。

3. 从数据库:从数据库是负责处理读操作的服务器。从数据库会从主数据库接收到写操

作的日志,并将这些日志应用到自己的数据库上,保持与主数据库的数据同步。

4. 读写分离代理:为了实现读写分离,通常会在应用程序和数据库之间加入一个读写分

离代理。读写分离代理会根据请求的类型将读操作和写操作分发到不同的数据库服务器

上。

5. 读操作:当应用程序发送一个读操作的请求时,读写分离代理会将该请求转发给从数

据库进行处理。由于从数据库只负责处理读操作,因此可以专注于提供高性能的读服

务。

6. 写操作:当应用程序发送一个写操作的请求时,读写分离代理会将该请求转发给主数

据库进行处理。主数据库会将写操作的结果同步到从数据库上,以保持数据的一致性。

四、准备工作

1、五台服务器关闭防火墙

2、mariadb进行主从复制(不会的可以看我之前mha高可用集群的那篇文章)

3、五台服务器之间可以互相通联

4、五台服务器之间时间同步

五、部署mariadb读写分离

1、安装jdk(这里amoeba只支持1.5版本和1.6版本的)

我原来是1.8的现在是1.6的就需要降版本

mv jdk1.6.0_31/ /usr/local/jdk1.6   将解压后的jdk包移动到/usr/local

vim /etc/profile                    进入全局配置文件
添加变量
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$HOME/bin

source /etc/profile                 更新全局变量

rm -rf /usr/bin/java     删除原jdk

 2、安装amoeba

mkdir /usr/local/amoeba                     创建amoeba的目录
tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
chmod -R 755 /usr/local/amoeba/             赋予amoeba755权限


vim /etc/profile                            进入全局配置文件添加变量
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$AMOEBA_HOME/bin


source /etc/profile                         更新变量

3、修改amoeba配置文件

在Master、Slave1、Slave2服务器中配置Amoeba的访问授权
grant all on *.* to 'test'@'192.168.200.%' identified by '123.com'; 
flush privileges;                                       更新权限



vim /usr/local/amoeba/conf/amoeba.xml                   进入amoeba配置文件
<property name="user">amoeba</property>                 指定用户
<property name="password">123456</property>             用户密码
<property name="defaultPool">master</property>          默认池
<property name="writePool">master</property>            写的池指定谁负责写
<property name="readPool">slaves</property>             读的池指定谁负责读

 4、修改数据服务配置文件

vim /usr/local/amoeba/conf/dbServers.xml 

<property name="port">3306</property>                            指定端口(默认)
<property name="schema">test</property>                          连接mysql的用户
<property name="user">test</property>                            登录mysql用户
<property name="password">123.com</property>                     mysql授权的密码
<dbServer name="master"  parent="abstractServer">                定义主服务器
<property name="ipAddress">192.168.1.20</property>               指定主服务器IP
<dbServer name="slave1"  parent="abstractServer">                定义第一个从服务器
<property name="ipAddress">192.168.1.210</property>              指定第一个从服务器IP
<dbServer name="slave2"  parent="abstractServer">                定义第二个从服务器
<property name="ipAddress">192.168.1.211</property>              指定第二个从服务器IP
<dbServer name="slaves" virtual="true">                          定义读的池
property name="loadbalance">1</property>                         开启轮询
<property name="poolNames">slave1,slave2</property>              
    

 

/usr/local/amoeba/bin/amoeba start & 启动amoeba

弹出8066端口的时候按下回车键

六、测试

关掉从2的服务器(可以看到从2查询到四个表)

从1的服务器没有关闭(可以看到从1可以查到八个表)

 以上就是mariadb读写分离的操作

如有错误欢迎各位大佬批评指正,我们共同进步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
事先声明 下载之前先看描述里面的目录 不然不要在那里吐槽 目录 ........................................................................CentOS 6.5安装部分................................................. 设备需求.................................................. 3 Mysql安装手则 ..................................... 3 一、 下载Mysql软件 .......................................... 3 二、 安装Mysql软件 .......................................... 4 三、 Mysql设置 .......................................... 6 Amoeba安装手则 ..........................................10 一、 下载Amoeba软件..........................................10 安装Amoeba ..........................................10 二、 安装Amoeba依耐关系 .......................................... 安装JDK ..........................................11 三、 配置Amoeba .................................................12 配置dbServers.xml 文件 ......................12 配置amoeba.xml文件 ......................................... 13 启动 Amoeba ...............................................14 ..............................Windows安装部分............... 设备需求 ............................................................................................................................................................................. 16 Mysql安装手则 ..................................................................................................................................................................... 16 一、 下载Mysql软件 .................. 16 二、 Mysql设置 ........................ 17 Amoeba安装手则 ......................19 一、 下载Amoeba软件 ......................................19 二、 安装Amoeba依耐关系 ...............................20 安装JDK ............................................ 20 配置环境变量 ........................... 20 三、 配置Amoeba .............................................. 22 配置dbServers.xml 文件 ............................ 22 配置amoeba.xml文件 ..................... 24 启动 Amoeba ............................... 24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值