用amoeba实现数据库的读写分离

本文档详细介绍了如何在已实现主从复制的MySQL环境中,通过Amoeba中间件来实现读写分离。Amoeba是一个分布式数据库代理,提供负载均衡、读写分离等功能。在RHEL 6.5和MySQL 5.7的实验环境下,依次介绍了安装JDK、部署Amoeba、配置Amoeba、为主从数据库授权、启动Amoeba以及测试读写分离的效果。
摘要由CSDN通过智能技术生成

  用amoeba实现Mysql读写分离
Amoeba 是什么:
Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。
主要解决:
• 降低 数据切分带来的复杂多数据库结构
• 提供切分规则并降低 数据切分规则 给应用带来的影响
• 降低db 与客户端的连接数
• 读写分离
这里我们主要利用amoeba实现数据库的读写分离功能
这里写图片描述
实验环境:rhel 6.5 mysql 5.7
Master mysql 172.25.64.1
Slave mysql 172.25.64.2
Amoeba 172.25.64.3

准备条件:首先我们要实现mysql的主动复制,然后因为amoeba框架是居于jdk开发的,所以我们需要安装jdk环境。

1.实现数据库的主从复制,因为上次我们实现了数据库的主从复制,所以这次我们直接在上次的基础上面去做就行

2.dk的安装

在amoeba主机上面:
安装jdk
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/ ##解压到/usr/local目录下面
cd /usr/local/
ln -s jdk1.7.0_79/ java ##为了方便,做一个软连接
Vim /etc/profile ##系统路径设置
79 export JAVA_HOME=/usr/local/java
80 export CLASSPATH=.:JAVA_HOME/lib:JAVA_HOME/jre/lib
81 export PATH=PATH:JAVA_HOME/bin
source /etc/profile ##加载路径
java -version ##查看是否安装成功

3.安装amoeba中间件。

unzip amoeba-mysql-3.0.5-RC-distribution.zip
cd amoeba-mysql-3.0.5-RC

4.配置amoeba

Amoeba的配置文件在本环境下位于/usr/local/amoeba/conf目录下。配置文件比较多,但是仅仅使用读写分离功能,只需配置两个文件即可,分别是dbServers.xml和amoeba.xml

cd conf/ ##配置文件存放位置
vim dbServers.xml

1 <?xml version="1.0" encoding="gbk"?>
  2 
  3 <!DOCTYPE amoeba:dbServers SYSTEM "dbserver.dtd">
  4 <amoeba:dbServers xmlns:amoeba="http://amoeba.meidusa.com/">
  5 
  6                 <!-- 
  7                         Each dbServer needs to be configured into a Pool,
  8                         If you need to configure multiple dbServer with load     balancing that can be simplified by the following configuration:
  9                          add attribute with name virtual = "true" in dbServe    r, but the configuration does not allow the element with name factoryConfig
 10                          such as 'multiPool' dbServer   
 11                 -->
 12 
 13         <dbServer name="abstractServer" abstractive="true">
 14                 <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServ    erConnectionFactory">
 15                         <property name="connectionManager">${defaultManager}    </property>
 16                         <property name="sendBufferSize">64</property>
 17                         <property name="receiveBufferSize">128</property>
 18 
 19                         <!-- mysql port -->
 20                         <property name="port">3306</property>           ##设置amoeba要连接数据库的端口,默认是3306
 21 
 22                         <!-- mysql schema -->
 23                         <property name="schema">testdb</property>       ###设置缺省的数据库,当连接amoeba时,操作表必须显式的指定数据库名,即采用dbname.tablename的方式,不支持 use dbname指定缺省库,因为操作会调度到各个后端dbserver
 24 
 25                         <!-- mysql user -->
 26                         <property name="user">test1</property>          ###设置amoeba连接后端数据库服务器的账号和密码,因此需要在所有后端数据库上创建该用户,并授权amoeba服务器可连接
 27 
 28                         <property name="password">YIYI+bushe24</property>   ##amoeba连接后端数据库服务器的密码,因为5.7对数据库的密码的健壮性有要求,所以我们设置密码的时候需要考虑密码的健壮性。
 29                 </factoryConfig>
 30 
 31                 <poolConfig class="com.meidusa.toolkit.common.poolable.Poola    bleObj
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值