一.amoeba的安装
1.安装好java
2.将amoeba的包解压到一个目录就可以了,我是解压到/usr/local/amoeba-mysql-binary-2.1.0/ 目录
3.进入bin目录,运行:./amoeba
如果看到:amoeba start|stop 就代表成功了
二.amoeba的配制
1.单机器代理实现
a.修改conf/dbServers.xml ,修改schema及password为真实的情况
b.修改conf/amoeba.xml,修改里的port及password为代理的情况
c.nohup ./amoeba start & 启动
d. mysql -uroot -p代理的密码 -h127.0.0.1 -P8066 如果登录成功则单机器代理成功了
2.主从代理实现
三.使用mysql jdbc提供的负载均衡配置再解决amoeba服务器的单点问题
1. jdbc连接字附串中的loadbalance说明
load balance方式有两种负载均衡算法,一种是随机式的轮询算法,另一种是最短响应时间算法
例句: <driver-url>jdbc:mysql:loadbalance://127.0.0.1:8066,10.20.238.164:8066/test</driver-url>
如果两台amoeba都正常时,会将访问的压力分载到 127.0.0.1,10.20.238.164两个机器上,还可以加上roundRobinLoadBalance=true参数,使用roundRobin轮询算法,若是其中一台机器down掉以后,将会自动将不能访问的数据库服务器 踢除,如果还原后将继续进行压力分载。
2. jdbc连接字附串中的replication说明
当后端MYSQL服务器群是master-slave单向一主N从的同步复制机制时,再使用loadbalance方式就会有问题了,因为如果有insert、update等写操作改变了从机的数据就麻烦了,从机不会将变化复制到主机,因此这种情况下需要实现“主读写、从只读”的模式,为了达到这个目的可以使用replication方式,
如下所示:<driver-url>jdbc:mysql:replication://master,slave1,slave2,slave3/test</driver-url>
replication方式可以很安全的实现写操作只发送到主机执行,而从机只会接收到读操作。