Amoeba-mysql读写分离实战

Amoeba用途有很多,这里看标题我们就先说读写分离,因为我也只会这个。Amoeba定义为国内的,开源的。目前(2015年10月20日)我们用amoeba2.2版本来做。

先说一下本人环境:

Keepalived那个先不说。

Mysql 5.6

Centos 6.4

Mysql一主两从已OK。

Amoeba 2.2.x

主从我就不讲了,网上N多资料。

Amoeba下载地址:http://sourceforge.net/projects/amoeba/files/Amoeba%20for%20mysql/

由于Amoeba需要用到jave se 所以我们需要安装jdk环境。

最新的1.8 可用。

安装jdk:

rpm -ivh jdk-8u60-linux-x64.rpm

source /etc/profile

验证jdk:

Jdk就完事了,现在开始amoeba的安装。

先创建目录文件

Mkdir /usr/local/amoeba

在将下载文件复制到刚刚创建的目录,然后解压。

然后我们进入conf文件,这里的xml为储存amoeba设置连接mysql的数据

在amoeba目录下,输入

./bin/amoeba

如果出现

说明amoeba安装OK,

接下来设置amoeba的参数,设置参数的文件在conf目录下的amoeba.xml和dbServers.xml两个文件。

先看 dbServiers.xml

grant all on *.* to [email protected]‘192.168.0.191‘ identified by "123456"; 这条命令是需要在客户端运行的,让amoeba调度器能够连接我们的数据库并做操作

这个dbServers.xml 就设置到这里

接下来看amoeba.xml

配置完成后保存。

然后启用amoeba

/usr/local/amoeba/bin/amoeba &       &表示在后台运行

用ps –ef |grep amoeba 看一下是否启动

在windows 客户端 验证是否可以登录amoeba上;

这样就表示登录成功。

接下来就是验证读写分离了

在停掉主从之前先在主上创建一个表名为create database jdtable;

然后进入库  use jdtable;

创建一个表 create table dashen (id int(10) ,name varchar(10),address varchar(20));

然后在看从上是否同步。

同步之后关掉主从 stop slave;

开始验证。

我们在第一个从上 也就是 187插入一条语句:

insert into dashen values(‘1‘,‘syw‘,‘slave-187‘);

在另外一个从上 也插入一条语句:

insert into dashen values(‘2‘,‘syw‘,‘slave-188‘);          虽然IP是190

然后我们用windows登陆amoeba这个调度器

使用select * from jdtable.dashen;来查询,看一下amoeba会调用之前amoeba.xml这里面的Slavepool这个模块的循环,也可以说是负载均衡。Slave1 查询一次,slave2查询两次。

在amoeba上插入一条数据时候,amoeba也会根据amoeba.xml 里面配置写的模块来写入相应的数据库中。

测试完毕!

时间: 2024-10-28 10:01:21

Amoeba-mysql读写分离实战的相关文章

Amoeba mysql读写分离搭建及介绍

Amoeba mysql读写分离搭建及介绍 推荐: http://blog.chinaunix.net/uid-20639775-id-154600.html

构建高性能web之路------mysql读写分离实战

一个完整的mysql读写分离环境包括以下几个部分: 应用程序client database proxy database集群 在本次实战中,应用程序client基于c3p0连接后端的database proxy.database proxy负责管理client实际访问database的路由策略,采用开源框架amoeba.database集群采用mysql的master-slave的replication方案.整个环境的结构图如下所示: 实战步骤与详解 一.搭建mysql的master-slave

mysql读写分离实战

http://blog.csdn.net/cutesource/article/details/5710645 mycat http://code.taobao.org/svn/openclouddb/

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读写分离机制

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

MySQL读写分离--mysql-proxy和amoeba

静态分离:直接将服务器地址写入程序 动态分离:通过代理服务器对数据进行读写操作,由代理服务器判定读写操作,在主服务器上写数据,在 从服务器上读数据. 好处:只在一台服务器上进行读或写操作,可以减少服务器的工作量,提高效率和服务器性能 进行写操作时(在代理服务器上操作语句,写入master),slave利用主从复制同步数据 三台服务器:主服务器10.0.10.1.从服务器10.0.10.2.代理服务器10.0.10.3 两种方法实现:使用MySQL-proxy实现.使用amoeba实现 1.使用m

mysql基于amoeba配置读写分离

                     Mysql高级集群-读写分离Amoeba                          mysql在配置好主从复制之后,已经达到双机热备和容灾的效果.此博客是建立在主从复制的前提上 ,mysql基于amoeba的配置读写分离在我看来:就是为了达到数据库高可用性,安全性以及高并发,达到 负载均衡的效果.说简单点,我个人觉得意思就是让主服务器轻松点,不易挂掉.还有就是充分利用从服务器.  本人水平有限,望各位大神多多指点指点.我非常乐意听取意见. 此版本

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

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

MySQL 读写分离 (基于Amoeba)

一.MySQL读写分离原理 主数据库处理事务性查询,从数据库处理select查询.数据库复制用来把事务性查询导致的变更同步到从数据库中. 二.最为常见的读写分离有两种: 1.基于程序代码实现 在代码中根据select,insert进程路由分类: 优点:性能好,因为在代码中实现,不需要额外的硬件设备: 缺点:需要开发人员来实现,对代码改动比较大,不适合大型复杂应用: 2.基于代理层实现 MySQL-Proxy:隶属于MySQL开源项目: Amoeba:Amoeba是一个以MySQL为底层数据存储,

mysql基于amoeba的读写分离

如何实现mysql读写分离 : 通常来说有两种方式:                      master<--->master  (前读,后写)                                                                          | 1,应用程序层实现