安装 amoeba for mysql

安装 amoeba for  mysql

对于amoeba 的安装是相当简单的,基本上没什么安装的,

只需要解压文件,然后设置下环境变量就行了

vi /etc/profile

export amoeba_home01=/home/software/amoeba-mysql-3.0.5-RC

export PATH=$PATH:$amoeba_home01/bin

添加完环境变量周 执行 source /etc/profile 是环境变量立即生效

以上是在linux上的操作  ,如果是window平台 ,

将 /amoeba-mysql-3.0.5-RC/bin路径添加在path环境变量就中行了

配置amoeba.xml  (读写分离)

在<sever></server> 节点中重点关注下port,IP,UserName ,Password

<server>

<!-- proxy server绑定的端口 -->  <!-- 此处的端口可以是amoeba所在机器上的任意的没有被使用的端口-->

<property name="port">6666</property>

<!-- proxy server绑定的IP --> <!--amoeba所在主机的IP地址,外部程序同使用这个IP链接mysql服务器 -->

<property name="ipAddress">192.168.53.41</property>

<!-- 对外验证的用户名 --> <!- 这个用户名可以任意写,外部程序通过amoeba访问mysql的的用户名-->

<property name="user">root</property>

<!-- 对外验证的密码 --> <!--密码可以任意写-->

<property name="password">[email protected]</property>

</server>

节点connectionManagerList 可以不用管 ,默认就行

<connectionManagerList>

<connectionManager name="defaultManager" class="com.meidusa.amoeba.net.MultiConnectionManagerWrapper">

<property name="subManagerClassName">com.meidusa.amoeba.net.AuthingableConnectionManager</property>

<!--

default value is avaliable Processors

<property name="processors">5</property>

-->

</connectionManager>

</connectionManagerList>

节点dbServerList 用来设置真实的mysql主机信息

<dbServerList>

<!--

一台mysqlServer 需要配置一个pool,

如果多台 平等的mysql需要进行loadBalance,

平台已经提供一个具有负载均衡能力的objectPool:com.meidusa.amoeba.mysql.server.MultipleServerPool

简单的配置是属性加上 virtual="true",该Pool 不允许配置factoryConfig

或者自己写一个ObjectPool。

-->

<dbServer name="master">

<!-- PoolableObjectFactory实现类 -->

<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">

<property name="manager">defaultManager</property>

<!-- 真实mysql数据库端口 -->

<property name="port">3306</property>

<!-- 真实mysql数据库IP -->

<property name="ipAddress">192.168.53.63</property>

<property name="schema">db_vip_act</property>

<!-- 用于登陆mysql的用户名 -->

<property name="user">root</property>

<!-- 用于登陆mysql的密码 -->

<property name="password">[email protected]</property>

</factoryConfig>

<!-- ObjectPool实现类 -->

<poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">

<property name="maxActive">200</property>

<property name="maxIdle">200</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>

<dbServer name="slave">

<!-- PoolableObjectFactory实现类 -->

<factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">

<property name="manager">defaultManager</property>

<!-- 真实mysql数据库端口 -->

<property name="port">3306</property>

<!-- 真实mysql数据库IP -->

<property name="ipAddress">192.168.53.60</property>

<property name="schema">db_vip_act</property>

<!-- 用于登陆mysql的用户名 -->

<property name="user">root</property>

<!-- 用于登陆mysql的密码 -->

<property name="password">[email protected]</property>

</factoryConfig>

<!-- ObjectPool实现类 -->

<poolConfig class="com.meidusa.amoeba.net.poolable.PoolableObjectPool">

<property name="maxActive">200</property>

<property name="maxIdle">200</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>

<dbServer name="multiPool" virtual="true">

<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">

<!-- 负载均衡参数 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA-->

<property name="loadbalance">1</property>

<!-- 参与该pool负载均衡的poolName列表以逗号分割 -->

<property name="poolNames">slave</property>

</poolConfig>

</dbServer>

</dbServerList>

这个里面重点讲下 节点multiPool

这个节点主要用来将多个主机配置成一个集群的,

如果有多个slave主机,可以将以下节点配置成

<property name="poolNames">slave1,slave2,slave3,</property>

表示就slave1,salve2,slave3配置成一个集群,当有请求发送到到multiPool 池的时候,

会按照一定的顺序分别转发到相应的slave

在有的版本中对dbServer的设置单独放置在另外一个dbServers.xml的文件中

然后在 amoeba.xml文件中引用   dbServers.xml 文件中

下面的代码是 amoeba.xml中的部分代码

<dbServerLoader class="com.meidusa.amoeba.context.DBServerConfigFileLoader">

<property name="configFile">${amoeba.home}/conf/dbServers.xml</property> # 引用外部dbServers.xml文件

</dbServerLoader>

最后就是配置路由功能了

<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">

<property name="ruleConfig">${amoeba.home}/conf/rule.xml</property>

<property name="functionConfig">${amoeba.home}/conf/functionMap.xml</property>

<property name="ruleFunctionConfig">${amoeba.home}/conf/ruleFunctionMap.xml</property>

<property name="LRUMapSize">1500</property>

<property name="defaultPool">master</property> #非读写操作转发到master

<property name="writePool">master</property> #写(insert/update/delete)操作被转发到主机master

<property name="readPool">multiPool</property> # 读(select)操作转发到multiPool集群

<property name="needParse">true</property>

</queryRouter>

通过以上的设置 ,一个简单的读写分离架构就搭建成功了

启动amoeba,

amoena的可执行文件放在amoeba-mysql-3.0.5-RC/bin下,执行一下可执行文件就可以开启amoeba。

开启之后程序就会在后台运行

版本不同,amoeba的可执行文件名有所不同有的launcher 有的amoeba

在amoeba-mysql-3.0.5-RC/bin 下有两个相似的可执行问文件

-rwxr-xr-x. 1 root root  2114 Jul  5  2013 launcher

-rwxr-xr-x. 1 root root  1579 Dec 27  2012 launcher.bat

在window平台launcher.bat执行就可以开启amoeba

在linux平台上执行launcher就可以开启amoeba

amoeba的使用手册:

http://docs.hexnova.com/amoeba/

https://www.centos.bz/2012/05/amoeba-for-mysql/

http://linuxguest.blog.51cto.com/195664/584788/

时间: 2025-01-02 18:01:09

安装 amoeba for mysql的相关文章

amoeba安装与实现amoeba for mysql读写分离

运行环境 l  CentOS6.3 l  Jdk1.6.0_30 l  amoeba-mysql-binary-2.2.0 l  amoeba:192.168.88.17 l  master1:192.168.88.10 l  slave1:192.168.88.11 一: 安装jdk1.5以上版本 1.1    卸载centos服务器自带版本jdk 1.1.1          查看服务器自带jdk版本号 [[email protected] ~]# java –version 1.1.2 查

mysql中间件amoeba实现mysql读写分离

Amoeba是一个以MySQL为底层数据存储,并相应用提供MySQL协议接口的proxy.它集中地响应应用的请求,根据用户事先设置的规则.将SQL请求发送到特定的数据库上运行.基于此能够实现负载均衡.读写分离.高可用性等需求.与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单).本文就来实现一个简单的amoeba的配置 实验环境: 192.168.1.121为amoeba

Amoeba实现Mysql读写分离

环境规划 Amoeba读写分离器 172.16.254.144/16 Mysql服务器(master) 172.16.254.150/16 Mysql服务器(slave) 172.16.254.151/16 一.先实现mysql主从复制,在master上使用yum安装mysql [[email protected] mysql]# yum -y install mysql mysql-server 启用二进制日志,编辑/etc/my.cnf在[mysqld]下添加如下行: log-bin = /

使用Amoeba让mysql主从服务器实现读写分离

环境: 一台CentOS6.5-x64最小化安装(ip:10.0.0.226) 软件:jdk-8u60-linux-x64.rpm, amoeba-mysql-binary-2.2.0.tar.gz 下载地址:链接: http://pan.baidu.com/s/1c04Wmys 密码: 4tqe 2.一台CentOS6.5-x64最小化安装(ip:10.0.0.222) 为了节省资源,本次使用的是mysql多实例.3306为主(master),3307为从(slave). 主从同步这里就不在说

使用Amoeba 实现MySQL DB 读写分离

Amoeba(变形虫)项目是一个开源框架,于2008年开始发布一款 Amoeba for Mysql软件: 这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发:位于 Client.DB Server(s)之间,对客户端透明: =================================================================== 1 简介 2 准备 2.

Amoeba for MySQL的读写分离配置

一.Amoeba概述 1.amoeba简介 Amoeba是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项目.其主要功能包括读写分离,垂直分库,水平分库等,经过测试,发现其功能和稳定性都非常的不错,如果需要构架分布式数据库环境,采用Amoeba是一个不错的方案.目前Amoeba一共包括For aladdin,For MySQL和For Oracle三个版本,本文主要关注For MySQL版本的一个读写分离实现. Amoeba处于在应用和数据库之间,

使用Amoeba实现mysql读写分离机制

Amoeba的实用指南 http://docs.hexnova.com/amoeba/ 如何实现mysql读写分离 : 通常来说有两种方式: 1,应用程序层实现 2,中间件层实现 应用层实现 应用层实现是指在应用程序内部及连接器中实现读写分离. 例如: com.mysql.jdbc.replicationdriver mysqlnd_ms 优点: 程序内部实现读写分离,安装即可使用 减少部署难度. 访问压力在一定级别以下,性能很好. 缺点: 架构一旦调整,代码要更这变, 不够灵活. 难以实现高级

使用Amoeba for mysql实现mysql读写分离

Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专注 分布式数据库 proxy 开发.座落与Client.DB Server(s)之间.对客户端透明.具有负载均衡.高可用性.Query过滤.读写分离.可路由相关的query到目标数据库.可并发请求多台数据库 合并结果. 在Amoeba上面你能够完成多数据源的高可用.负载均衡.数据切片的功能.目前在很多企业的生产线上面使用.www.centos.bz这里使用Amo

keepalived+amoeba+mysql-mmm+mysql实现mysql读写分离及高可用

最近尝试了一下mysql的读写分离和高可用的搭建.搭好之后体验了一下,效果还不错.这里跟大家分享一下. 1.首先介绍一下mysql-mmm这个工具是干嘛使的? 众所周知,mysql自身提供了AB复制.我们也可以很轻松的实现master-master双向复制,同时再为其中的一个master节点搭建一个slave库.这样就实现了master1与master2之间的双向复制,同时master1与slave1之间主从复制这样的架构.这样整个体系中就存在两个master,正常情况下只有一个master对外