MySQL的读写分离之Amoeba

MySQL读写分离Amoeba简介

 

Amoeba介绍:

 

    阿里巴巴的Amoeba(变形虫)项目,专注 数据库proxy开发。座落与ClientDB Server(s)之间。对客户端透明。具有负载均衡高可用性sql过滤读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。

 

架构图:

 MySQL的读写分离之Amoeba_第1张图片

MySQL的读写分离之Amoeba_第2张图片

 

 

 

Amoeba除了读写分离,还可以进行负载均衡高可用性sql过滤

 

 

 

Amoeba的安装和配置

 

 

Amoeba需要mysql-server支持,Amoeba服务器端需要安装Mysql-server,并且最好不与其他数据库服务器在一起

 

AmoebaJava编写的,运行需要JDK环境,可以通过#echo $JAVA_HOME看是否安装配置了JDK,如果没有,则

 

安装JKD

 

 

①.安装依赖包

 

yum -y install glibc*

 

②.安装JDK

下载:jdk-6u35-linux-i586.bin 或 jdk-6u45-linux-x64.bin

 

 

chmod 700 jdk-6u35-linux-i586.bin

 

 

chmod 700 jdk-6u45-linux-x64.bin

./jdk-6u35-linux-i586.bin

 

mv jdk1.6.0_35  jdk

mv  jdk  /usr/local/

 

 

 

③.修改JDK的环境变量

 

vi /etc/profile.d/java.sh

JAVA_HOME="/usr/local/jdk"

CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"

PATH="$PATH:$JAVA_HOME/bin"

export JAVA_HOME

 

 

source /etc/profile.d/java.sh

 

#测试安装成功

java -version

 

 

安装Amoeba

 

下载:amoeba-mysql-binary-2.2.0.tar.gz

 

①.安装Amoeba

 

mkdir /usr/local/amoeba

tar -zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba

 

cd /usr/local/amoeba/

 

②.配置amoeba.xmldbServer.xml

 

vi conf/amoeba.xml

 

    8066

# 默认端口是8066

# 修改连接amoeba接口的认证信息

     172.18.109.213

#访问amoeba的ip地址,amoeba服务器的地址

... ...

      

        amoeba 

# 客户端连接amoeba的代理使用的用户 

       mypasswd

# 客户端连接amoeba的代理使用的密码

 

... ...

          

       

            ${amoeba.home}/conf/rule.xml

            ${amoeba.home}/conf/ruleFunctionMap.xml

       

   

    ${amoeba.home}/conf/functionMap.xml

    1500

    master# 设定默认节点

    maseter  # 设定可写节点,节点定义见dbServers.xml文件

    readpool # 设定只读池,可配置多个slave节点

#readPool或writePool可以是dbServers中的multiPool名称,用multiPool来设置负载均衡

    true

 

 

 

 

vi conf/dbServers.xml

 # 读写分离配置,读池和写池和dbServer.xml中配置的节点相关

   

        ${defaultManager}

        64

        128

        3306

        chejecms

        myroot

# 默认连接mysql server的用户

        my123

# 默认连接mysql server的密码,以上两项如不在下文中的dbserver中单独定义,则直接继承此处定义

   

# 定义连接mysql服务的用户amoeba和密码my123和数据库chejecms

# 定义后端MySQL的IP地址,一个master,一个slave

master"  parent="abstractServer">

   

        172.19.200.204

            

   

slave1"  parent="abstractServer">

   

        172.18.109.213

             

   

#服务组,轮询策略

   1

 

    master,slave1

#1为轮询策略,里面的master,slaver1按请求轮询调用

                

        

 

 

64位系统,修改:

vi /usr/local/amoeba/bin/amoeba

... ...

DEFAULT_OPTS="-server -Xms256m -Xmx256m -Xss256k"

#-Xss128k改为-Xss256k

 

 

 

 

 

 

 

③.开启amoeba

 

/usr/local/amoeba/bin/amoeba start &

 

开机自启动

 

echo "/usr/local/amoeba/bin/amoeba start &" >> /etc/rc.d/rc.local

 

 

④.验证amoeba

 

mysql -uamoeba -h 172.18.109.213 -pmypasswd -P8066

 

#注意,此时登录的用户密码为连接amoeba服务器的密码,不是连接数据库的密码!!因为连接进到的是amoeba,并没有进到mysql里面!!!

 MySQL的读写分离之Amoeba_第3张图片


你可能感兴趣的:(关系数据库)