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作为读写分离方案, 还要慎重考虑. 有知道原因的朋友,请给我留言.或者其他解决方案否? 


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

解决在使用Amoeba遇到的问题

最近有同行在使用Amoeba 的过程中多少遇到了一些问题。总结一下遇到问题的解决方法:1、读写分离的时候设置的在queryRouter中设置无效?      读写分离配置的优先级别:       &#...
  • csrcom
  • csrcom
  • 2008-06-24 10:09
  • 1585

mysql基于amoeba的读写分离

前文中有讲到有关mysql的主从配置,如果单单就主从配置而言,仅能实现数据的及时备份与恢复,对于那些更新不频繁,不需要时时备份数据的用户来说意义不大,而且仅为了备份而再架设一台数据库服务器有些浪费,因...

MySQL之—— 基于amoeba的一主多从读写分离配置

近期开发的系统中使用MySql作为数据库,由于数据涉及到Money,所以不得不慎重。同时,用户对最大访问量也提出了要求。为了避免Mysql成为性能瓶颈并具备很好的容错能力,特此实现主从热备和读写分离。...

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

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

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

测试Amoeba的数据分片功能   1. 测试目的 l        验证Amoeba具有数据分片功能。 l        测试A...

下载nutz工程搭建环境测试过程中的几个小问题

这几天,经同事介绍想学习一下Nutz,至于有什么好处加为什么学,自已百度! 按照nutz手册 下载了nutz工程源码,一步一步配置,有几个地方需要注意一下! 运行 JUnit 测试 2. 创建连接配置...

centos平台基于snort、barnyard2以及base的IDS(入侵检测系统)的搭建与测试及所遇问题汇总

一、基本环境 虚拟机工具:Vmware Workstation Pro 12 Centos版本:CentOS-7-x86_64-Minimal-1511 Snort版本:snort-2.9.9....

首个spring mvc 测试例子搭建遇到问题记录

开发环境:jdk1.7 + tomcat7 + Eclipse Juno 首先下载spring 相关jar包 我用的是 spring-framework-3.2.1.RELEASE http://...

Amoeba架构文档

  • 2016-05-19 14:03
  • 1.50MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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