Amoeba实现MySQL数据库读写分离

一 环境以及软件版本:
系统:CentOS Linux release 7.2.1511 (Core)
MySQL:Server version: 5.6.33
Amoeba:amoeba-mysql-3.0.5-RC-distribution
JDK:1.7.0_80-b15 (Amoeba的运行需要jdk)

二 安装Amoeba:
1 下载好所需软件:

# ls amoeba-mysql-3.0.5-RC-distribution.zip jdk-7u80-linux-x64.rpm

2 安装jdk

# yum -y install jdk-7u80-linux-x64.rpm # Java -version java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

3 解压Amoeba

# unzip amoeba-mysql-3.0.5-RC-distribution.zip # mv amoeba-mysql-3.0.5-RC /usr/local/amoeba # mv amoeba-mysql-3.0.5-RC /usr/local/amoeba # cd /usr/local/amoeba/conf/ # vim amoeba.xml <property name="port">3306</property> #设置amoeba监听的端口,默认是8066 <property name="ipAddress">10.0.0.159</property> #设置amoeba监听的ip地址 <property name="user">root</property> #设置连接amoeba的用户 <property name="password">123456</property> #设置连接amoeba的密码 #(这里的账号密码和amoeba连接后端数据库服务器的密码无关) <property name="defaultPool">master</property> #设置amoeba默认的池,这里设置为matster #这两个选项默认是注销掉的,需要取消注释,这里用来指定写库和读库 <property name="writePool">master</property> <property name="readPool">multiPool</property> #这给的是一个组,如果这个组里有多个dbServers则可以负载均衡,此组在 dbServers.xml中设置

设置mysql库的信息,在当前目录下的dbServers.xml文件里

# vim dbServers.xml <!-- mysql port --> #设置amoeba连接后端mysql的端口 <property name="port">3306</property> <!-- mysql schema --> #设置缺省的数据库,当连接amoeba时,操作表必须显式的指定数据库名,即采用dbname.tablename的方式,不支持 use dbname指定缺省库,因为操作会调度到各个后端dbserver <property name="schema">test</property> <!-- mysql user --> #设置amoeba连接后端mysql的用户名和密码 <property name="user">amoeba</property> <property name="password">123456</property> <dbServer name="master" parent="abstractServer">#设置一个后端的dbServer,这里设置连接可写的master库,此名字可自定义,但要和amoeba.xml中调用的名字一致即可。 <factoryConfig> <!-- mysql ip --> #后端mysql的ip地址 <property name="ipAddress">10.0.0.176</property> </factoryConfig> </dbServer> <dbServer name="slave" parent="abstractServer"> #设置一个后端的dbServer,这里设置连接可读的salve,此名字可自定义,但要和amoeba.xml中调用的名字一致即可。 <factoryConfig> <!-- mysql ip --> #后端mysql的ip地址 <property name="ipAddress">10.0.0.193</property> </factoryConfig> </dbServer> <dbServer name="multiPool" virtual="true"> #定义一个dbserver组 <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool"> <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA--> ##选择调度算法,1表示轮询负载均衡,2表示权重,3表示HA, 这里选择1 <property name="loadbalance">1</property> <!-- Separated by commas,such as: server1,server2,server1 --> <property name="poolNames">slave</property> #组成员,当有多个时用逗号分隔 </poolConfig> </dbServer>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15c177c12a30ae90411e10730f7e72e9.html