amoeba搭建+测试+问题

原创 2016年08月31日 16:06:06

一. 准备工作: 

1. 正确安装JDK1.7 , 

2.两台服务器192.168.0.100 和 192.168.0.101, 

3.首先正确搭建两台mysql的master-slave关系. 搭建步骤参考 http://blog.csdn.net/helloznan/article/details/52371814


二. 下载安装

1.http://sourceforge.net/projects/amoeba/files/,下载后是压缩包形式,在电脑目录中创建一个文件夹命名为amoeba,将压缩包解压,解压后的文件如下图所示:



2.启动bin\launcher.bat启动amoeba,如果看到下图,说明成功


3.了解amoeba配置

Amoeba总共有7个配置文件,分别如下:

#/*  Amoeba主配置文件($AMOEBA_HOME/conf/amoeba.xml),用来配置Amoeba服务的基本参数,如Amoeba主机地址、端口、认证方式、用于连接的用户名、密码、线程数、超时时间、其他配置文件的位置等。

#/*  数据库服务器配置文件($AMOEBA_HOME/conf/dbServers.xml),用来存储和配置Amoeba所代理的数据库服务器的信息,如:主机IP、端口、用户名、密码等。

#/*  切分规则配置文件($AMOEBA_HOME/conf/rule.xml),用来配置切分规则。

#/*  数据库函数配置文件($AMOEBA_HOME/conf/functionMap.xml),用来配置数据库函数的处理方法,Amoeba将使用该配置文件中的方法解析数据库函数。

#/*  切分规则函数配置文件($AMOEBA_HOME/conf/ruleFunctionMap.xml),用来配置切分规则中使用的用户自定义函数的处理方法。

#/*  访问规则配置文件($AMOEBA_HOME/conf/access_list.conf),用来授权或禁止某些服务器IP访问Amoeba。

#/*  日志规格配置文件($AMOEBA_HOME/conf/log4j.xml),用来配置Amoeba输出日志的级别和方式。


4. 配置dbServers.xml


首先注意到这个是一个抽象的父服务,用来给实际服务的继承使用. 每一个server都要有独立的后端mysql连接端口,数据库名称,帐号,密码, 连接池大小等.写在抽象父类中,方便统一管理. 如果不用继承的方式,也可以复制到每一个具体server中.



再创建两个实际的server.都继承了相同的父类,唯一不同的是他们的IP



再配置一个虚拟的server,相当于自由组合实际server为一个server,这里命名为multiPool,名称可以自定义.


5.配置amoeba.xml


配置amoeba的连接端口,以及amoeba的登录帐号密码,与dbServers.xml中的帐号密码不同,dbServers.xml是配置后端mysql的帐号密码


设置默认数据库为master,以及读和写策略,这里读策略是从虚拟服务中轮询, 当对一条sql语句解析不出的时候,无法正确路由到writePool或readPool时,就会路由到defaultPool.所以defaultPool一般配置为主节点.


重启amoeba.xml


6. 测试

登录amoeba  

cmd > mysql -uroot -padmin -P8066 -h127.0.0.1

a) 这里的帐号密码是在amoeba.xml中配置的登录密码,不是后端mysql的帐号密码

b) -P8066为amoba.xml的端口

c) 经测试, -h127.0.0.1不可缺少,否则就会路由到defaultPool中,只有制定了-h才能完成路由,不知道是什么原因.


由于已经配置了主从数据库,此时master库的数据变化,已经自动复制到slave中,所以手动修改slave表Student,把id为1的记录name值进行修改,只要与master中的值不一致即可.此时不可再修改master的student表的ID=1记录,不然又同步到slave中了,然后执行select * from Student where id=1看看是不是查询出了slave中的值. 

可以修改虚拟服务,设置多个服务轮训.如

多次查询发现结果是不一样的. 至此,amoeba安装配置成功


=====================================================

问题:

1. 在使用amoeba时, 应用层spring+hibernate,通过JpaTransactionManager测试事务.

提交然后回滚.发现update语句是被回滚了,但是insert没有被回滚.所以是否采用amoeba作为读写分离方案, 还要慎重考虑. 有知道原因的朋友,请给我留言.或者其他解决方案否? 


Windows下amoeba安装及读写分离配置

amoeba的安装 1.准备环境 电脑必须已安装并配置好jdk。目前Amoeba经验证在JavaTM SE 1.5和Java SE 1.6能正常运行,(可能包括其他未经验证的版本),本文所使用的jdk...
  • bxdxstu
  • bxdxstu
  • 2015年05月19日 12:26
  • 1136

Amoeba For MySQL_测试Amoeba的数据切分功能_CentOS6.5下进行

测试Amoeba的数据分片功能   1. 测试目的 l        验证Amoeba具有数据分片功能。 l        测试Amoeba进行数据切片后进行聚合的情况,是否支持常见的条件查询操作、S...

MySQL主从复制与读写分离在windows系统下的实现(amoeba3.0+mysql5.1实现)因版本问题,本文在原来文章基础上有更改并且本人已经测试成功

MySQL主从复制与读写分离在windows系统下的实现(amoeba+mysql实现) 一、简介    在实际生产环境中,一台MySQL服务器是很难做到高可用(HA)。对于一台 MySQL 服...

使用Amoeba for mysql实现mysql读写分离(测试可行)

Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专注 分布式数据库 proxy 开发。座落与Client、DB S...

amoeba mysql读写分离测试

在搭建amoebamysql集群读写分离系统完成后,需要对搭建的环境进行读写分离测试; 1.1部署环境: masterDB:192.*.*.193 slaveDB:192.*.*.194 ...

一步一图搭建-分布式服务器部署之mysql集群-使用amoeba整合mysql实现读写分离

数据库的读写分离说明: 由于数据库没有优化,会导致主数据库的压力较大. 策略: 如果是读的操作,都访问从数据库. 如果是写的操作.都访问主数据库.介绍:Amoeba是一个以MySQL为底层数据...

amoeba+mmm搭建mysql高可用负载均衡集群

架构优点:(1)99%高可用;                       (2)读写分离,负载均衡;                       (3)自动故障切换(4)自动切换主从 ...

MySQL搭建Amoeba_读写分离

一、背景知识 Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相...

Selenium Webdriver学习记录(一):环境搭建(Java+Maven+Eclipse+Selenium3.x)+第一个测试demo+部分问题解决

1.Selenium的学习网站:     官网:http://www.seleniumhq.org/docs/     中文网站:易百教程-->Selenium教程:http://www.yiibai...

https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

  一:什么是https SSL(Security   Socket   Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,...
  • jimung
  • jimung
  • 2014年08月11日 10:53
  • 882
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:amoeba搭建+测试+问题
举报原因:
原因补充:

(最多只允许输入30个字)