当前位置:文档之家› 配置amoeba实现读写分离

配置amoeba实现读写分离

配置amoeba实现读写分离配置环境:Mater :192.168.1.229 server1 读Slave :192.168.1.181 server2 写网站主机: 192.168.1.120 测试读写一,配置mysql主从复制:请见另外一个文档。

二,配置jdk环境变量。

Amoeba框架是基于Java SE1.5开发的,建议使用Java SE 1.5版本。

目前Amoeba 经验证在JavaTM SE 1.5和Java SE 1.6能正常运行,(可能包括其他未经验证的版本)。

变量设置(在master主机上配置),此处可以设置全局环境变量设置,也可使用root 用户变量设置,同样,如果是别的用户安装的amoeba软件,则使用相应的账号来设置jdk环境变量。

全局设置如下:加入下信息:vi /etc/profileJAVA_HOME=/usr/local/jdk1.6.0_25PATH=$JAVA_HOME/bin:$PATHPATH=$PATH:$HOME/bin:/usr/local/amoeba/binCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOMEexport PATHexport CLASSPATH解释如下:第一行指定了jdk的安装目录。

第二行指定了其家目录的路径。

第三行指定了amoeba的安装目录。

第四行指定了java相应的工具盒功能。

同样,如果是root用户的环境变量,则使用下面的位置的变量。

vi ~/.bash_profile加入如上得到内容即可。

完成之后,执行命令 source ~/.bash_profile 或者source /etc/profile使用如下的命令查看java手否被成功安装:[root@localhost ~]# java -versionjava version "1.6.0_25"Java(TM) SE Runtime Environment (build 1.6.0_25-b06)Java HotSpot(TM) Client VM (build 20.0-b11, mixed mode, sharing)上述显示已经成功安装1.6版本。

附注jdk的下载地址:/technetwork/java/javase/downloads/jdk-6u32-downlo ads-1594644.html三,Amoeba的安装(amoeba只需安装到一台主机上即可,默认情况下,是安装到主(master)服务器上,如果有第三台服务器,也可以将其安装到第三台服务器上。

这样,减少了mysql使用的瓶颈。

1,在安装之前,需要对mysql进行授权管理:使用下面命令对连接时使用的用户名密码及数据库,IP地址进行授权。

下面例子中授权所用户任何IP地址使用root用户访问所有的数据库。

如下命令:mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'oppomy7gadmin' WITH GRANT OPTION;Query OK, 0 rows affected (0.20 sec)2,Amoeba软件可以从下面地址中得到。

Linux下:wget /project/amoeba/Amoeba%20for%20mysql/2.x /amoeba-mysql-binary-2.1.0-RC5.tar.gzWindows下:/projects/amoeba/3,本文中介绍的是在linux下安装的,下面开始amoeba的安装:解压amoeba 到/usr/local/tar xzf amoeba-mysql-binary-2.1.0-RC5.tar.gz -C /usr/local/amoeba4,amoeba的配置:配置Amoeba for mysql的读写分离主要涉及两个文件:① /usr/local/amoeba/conf/dbServers.xml此文件定义由Amoeba代理的数据库如何连接,比如最基础的:主机IP、端口、Amoeba 使用的用户名和密码等等。

② /usr/local/amoeba/conf/amoeba.xml5,编辑第一个配置文件:vim /usr/local/amoeba/conf/dbServers.xml内容如下:<?xml version="1.0" encoding="gbk"?><!DOCTYPE amoeba:dbServers SYSTEM "dbserver.dtd"><amoeba:dbServers xmlns:amoeba="/"><!--Each dbServer needs to be configured into a Pool,If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration:add attribute with name virtual = "true" in dbServer, but the configuration does not allow the element with name factoryConfigsuch as 'multiPool' dbServer--><dbServer name="abstractServer" abstractive="true"><factoryConfigclass=".MysqlServerConnectionFactory"><property name="manager">${defaultManager}</property><property name="sendBufferSize">64</property><property name="receiveBufferSize">128</property><!-- mysql port --><property name="port">3306</property><!-- mysql schema --><property name="schema">test</property><!-- mysql user --><property name="user">root</property><!-- mysql password --><property name="password">oppomy7gadmin</property> </factoryConfig><poolConfigclass=".poolable.PoolableObjectPool"><property name="maxActive">500</property><property name="maxIdle">500</property><property name="minIdle">10</property><propertyname="minEvictableIdleTimeMillis">600000</property><propertyname="timeBetweenEvictionRunsMillis">600000</property><property name="testOnBorrow">true</property><property name="testWhileIdle">true</property></poolConfig></dbServer><dbServer name="server1" parent="abstractServer"><factoryConfig><!-- mysql ip --><property name="ipAddress">192.168.1.229</property> </factoryConfig></dbServer><dbServer name="server2" parent="abstractServer"><factoryConfig><!-- mysql ip --><propertyname="ipAddress">192.168.1.181</property></factoryConfig></dbServer><dbServer name="multiPool" virtual="true"><poolConfigclass="com.meidusa.amoeba.server.MultipleServerPool"><!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA--><property name="loadbalance">1</property><!-- Separated by commas,such as: server1,server2,server1 --><property name="poolNames">server2</property></poolConfig></dbServer></amoeba:dbServers>解释如下:更改上述中黄色区域的内容,如果没有上述内容,则添加,如果涉及到多个库,则也许添加至文档中,涉及到多个slave(文件中为server1),需要单独添加,server1为master,并指定其IP地址。

相关主题