一、关于读写分离
amoeba : 英[ə’mi:bə]
读写分离(Read/Write Splitting),基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。
数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
二、Amoeba 是什么
Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。
主要解决:
• 降低 数据切分带来的复杂多数据库结构
• 提供切分规则并降低 数据切分规则 给应用带来的影响
• 降低db 与客户端的连接数
• 读写分离
三、为什么要用Amoeba
目前要实现mysql的主从读写分离,主要有以下几种方案:
-
1、 通过程序实现,网上很多现成的代码,比较复杂,如果添加从服务器要更改多台服务器的代码。
-
2、 通过mysql-proxy来实现,由于mysql-proxy的主从读写分离是通过lua脚本来实现。mysql proxy根本没有配置文件,lua脚本就是它的全部,目前lua的脚本的开发跟不上节奏,而写没有完美的现成的脚本,这种东西需要编写大量的脚本才能完成一个复杂的配置。因此导致用于生产环境的话风险比较大,据网上很多人说mysql-proxy的性能不高。
-
3、 自己开发接口实现,这种方案门槛高,开发成本高,不是一般的小公司能承担得起。
-
4、 利用阿里巴巴的开源项目Amoeba来实现,具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库,并且安装配置非常简单。
下面是amoeba的结构,图中的ip不是实验中的IP

四、Amoeba的安装
环境描述:
Amoeba服务器:192.168.160.136
主数据库服务器:192.168.160.137
从数据库服务器:192.168.160.138
以上全部为centos6.9
Amoeba框架是居于JDK1.5开发的,采用了JDK1.5的特性,所以还需要安装java环境,建议使用javaSE1.5以上的JDK版本
1.安装java环境
- 先去官网下载:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装
[root@localhost src]# rpm -ivh jdk-8u171-linux-x64.rpm
Preparing... ########################################### [100%]
1:jdk1.8 ########################################### [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
- 然后设置java环境变量
[root@localhost src]# rpm -ivh jdk-8u171-linux-x64.rpm
vim /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
JRE_HOME=/usr/java/jdk1.8.0_171-amd64/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
source /etc/profile
- 测试是否安装成功
[root@localhost lib]# java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)
2. 安装amoeba
可以从https://sourceforge.net/projects/amoeba/下载最新版本的Amoeba,
我这里下载的是amoeba-mysql-binary-2.1.0-RC5.tar.gz。Amoeba安装非常简单,直接解压即可使用,这里将Amoeba解压到/usr/local/amoeba目录下,这样就安装完成了
mkdir /usr/local/amoeba
mv amoeba-mysql-binary-2.1.0-RC5.tar.gz /usr/local/amoeba/
cd /usr/local/amoeba/
tar zvxf amoeba-mysql-binary-2.1.0-RC5.tar.gz
[root@localhost lib]# cd /usr/local/amoeba/
[root@localhost amoeba]# ll
总用量 60
drwxr-xr-x. 2 root root 4096 7月 11 11:34 benchmark
drwxr-xr-x. 2 root root 4096 2月 28 2011 bin
-rw-r--r--. 1 root root 3983 5月 18 2011 changelogs.txt
drwxr-xr-x. 2 root root 4096 7月 11 11:34 conf
drwxr-xr-x. 3 root root 4096 7月 11 11:34 lib
-rw-r--r--. 1 root root 34520 5月 18 2011 LICENSE.txt
-rw-r--r--. 1 root root 2031 5月 18 2011 README.html
3. 配置amoeba
Amoeba For MySQL 的使用非常简单,所有的配置文件都是标准的XML 文件,总共有四个配置文件。分别为:
amoeba.xml: 主配置文件,配置所有数据源以及Amoeba自身的参数设置(实现主从的话配置这个文件就可以了)

本文详细介绍了Amoeba作为数据库中间件,实现MySQL读写分离的原理和配置步骤。Amoeba通过读写分离、负载均衡等功能提高数据库系统的可用性和性能。在配置过程中,涉及Amoeba的安装、配置文件如dbServers.xml和amoeba.xml的设置,以及主从服务器的复制配置。此外,文章还强调了在配置过程中需要注意的细节,如确保Amoeba在各个数据库服务器上的权限设置,并在出现问题时如何排查。
944

被折叠的 条评论
为什么被折叠?



