安装amoeba与配置


环境:
192.168.0.20 server01 ## Monitor host
192.168.0.50 server02 ## Master
192.168.0.60 server03 ## Candicate master
192.168.0.70 server04 ## Slave         

软件需求:
jdk
mysql

原理:

mysql主从复制配置

因为读写分离,所以一台负责mysql的写操作,另一台负责mysql的读操作,所以我们这里使用mysql的主从复制再合适不过了。关于这一配置,请移步:
https://www.centos.bz/2011/07/linux-mysql-replication-sync-configure/

java环境配置

Amoeba框架是基于Java SE1.5开发的,建议使用Java SE 1.5版本。目前Amoeba经验证在JavaTM SE 1.5和Java SE 1.6能正常运行,(可能包括其他未经验证的版本)。
Java SE 1.6下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html
我这里下载jdk-6u32-linux-i586-rpm.bin。
下载完成后执行sh jdk-6u32-linux-i586-rpm.bin开始安装,将会安装到/usr/java/jdk1.6.0_32目录。

1.  软件:jdk-6u13-linux-i586.zip


1. unzip jdk-6u13-linux-i586.zip
2. chmod +x jdk-6u13-linux-i586.bin
3.   ./jdk-6u13-linux-i586.bin
4.  vi /etc/profile


JAVA_HOME=/usr/jdk1.6.0_45

JRE_HOME=$JAVA_HOME/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH



Amoeba的安装

Amoeba下载地址:http://sourceforge.net/projects/amoeba/
下面是安装步骤:

  1. cd /tmp
  2. mkdir /usr/local/amoeba
  3. wget http://softlayer.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.1.0-RC5.tar.gz
  4. tar xzf amoeba-mysql-binary-2.1.0-RC5.tar.gz -C /usr/local/amoeba

配置用户环境变量

  1. vi ~/.bash_profile

设置为:

  1. PATH=$PATH:$HOME/bin:/usr/local/amoeba/bin
  2. JAVA_HOME=/usr/java/jdk1.6.0_32
  3.  
  4. export JAVA_HOME
  5. export PATH

立即生效:

  1. source  ~/.bash_profile

Amoeba for mysql配置

配置Amoeba for mysql的读写分离主要涉及两个文件:
1、/usr/local/amoeba/conf/dbServers.xml
此文件定义由Amoeba代理的数据库如何连接,比如最基础的:主机IP、端口、Amoeba使用的用户名和密码等等。
2、/usr/local/amoeba/conf/amoeba.xml
此文件定义了Amoeba代理的相关配置。

dbServers.xml文件配置

abstractServer配置:

<dbServer name="abstractServer" abstractive="true">
  <factoryConfig class="com.meidusa.amoeba.mysql.net.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"> qn</property>
   
   <!-- mysql user -->
   <property name="user"> amoeba</property>
   
   <!-- mysql password -->
   <property name="password"> amoeba</property>
  </factoryConfig>
  <poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">
   <property name="maxActive">500</property>
   <property name="maxIdle">500</property>
   <property name="minIdle">10</property>
   <property name="minEvictableIdleTimeMillis">600000</property>
   <property name="timeBetweenEvictionRunsMillis">600000</property>
   <property name=" testOnBorrow"> true</property>
   <property name="testWhileIdle">true</property>
  </poolConfig>
 </dbServer>

此部分定义真实mysql服务器的端口,数据库名称,mysql用户及密码。
主从数据库定义:

 <dbServer name=" server1" parent="abstractServer">
  <factoryConfig>
   <!-- mysql ip -->
   <property name="ipAddress"> 192.168.0.50</property>
  </factoryConfig>
 </dbServer>
 <dbServer name=" server2" parent="abstractServer">
  <factoryConfig>
   <!-- mysql ip -->
   <property name="ipAddress"> 192.168.0.60</property>
  </factoryConfig>
 </dbServer>
 <dbServer name=" server3" parent="abstractServer">
  <factoryConfig>
   <!-- mysql ip -->
   <property name="ipAddress"> 192.168.0.70</property>
  </factoryConfig>
 </dbServer>
 
 <dbServer name="multiPool" virtual="true">
  <poolConfig class="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,server3</property>
  </poolConfig>
 </dbServer>

此部分定义主服务器,从服务器,及从服务器连接池。这里只定义数据库地址,它们的用户及密码就是上面的abstractServer里的设置。注意用来连接真实mysql服务器的用户必须拥有远程连接权限。

amoeba.xml配置

amoeba连接验证配置:

 <property name="authenticator">
    <bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator">
     
     <property name="user"> amoeba</property>
     
     <property name="password"> amoeba</property>
     
     <property name="filter">
      <bean class="com.meidusa.amoeba.server.IPAccessController">
       <property name="ipFile">${amoeba.home}/conf/access_list.conf</property>
      </bean>
     </property>
    </bean>
   </property>

这里定义连接amoeba时用来验证的用户及密码。
读写分离配置:

 </property>
                <property name="sqlFunctionFile">${amoeba.home}/conf/functionMap.xml</property>
                <property name="LRUMapSize">1500</property>
                <property name="defaultPool">server1</property>
                <!--   -->
                <property name="writePool">server1</property>
                <property name="readPool">multiPool</property>
                
                <property name="needParse">true</property>

defaultPool:配置了默认的数据库节点,一些除了SELECT\UPDATE\INSERT\DELETE的语句都会在defaultPool执行。
writePool :配置了数据库写库,通常配为Master,如这里就配置为之前定义的Master数据库。
readPool :配置了数据库读库,通常配为Slave或者Slave组成的数据库池,如这里就配置之前的virtualSlave数据库池。

amoeba启动

启动命令:

  1. amoeba start

此命令以前台的方式启动,会输出启动时的信息,检查没有错误信息后,中断,并后台运行:

  1. amoeba start &

FAQ

1、无法正常连接?
首先根据执行amoeba start输出的信息排除配置文件没有问题,之后确认mysql用户是否有远程连接的权限,然后检查网站的数据库配置文件是否设置正确。
2、如何配置网站数据库连接文件?
默认的端口应该为8066,用户及密码在amoeba.xml里设置。


测试:

1.关闭server2 ,server3 的复制

stop slave

2.  在主库上生成一条数据:

mysql -u amoeba -p qn --password='amoeba' -h 127.0.0.1 -P8066   

insert into a select 9999 from dual ;

3. 在select  ,发现没有

4. 开启server2 ,server3 的复制

5. 在在select  ,发现有数据。 数据读写分离成功



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值