Amoeba实现Mysql主从复制读写分离

一.简介
    Amoeba for MySQL致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当query 路由功能,专注 分布式数据库 proxy 开发。位于与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、Query过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。 在Amoeba上面你能够完成多数据源的高可用、负载均衡、数据切片的功能。目前在很多企业的生产线上面使用。
主要解决:
    *降低数据切片带来的复杂多数据库结构
    *提供切分规则并降低数据切分规则给应用带来的影响
    *降低db与客户端的连接数
    *读写分离,负载均衡

二.amoeba读写分离原理图
Amoeba实现Mysql主从复制读写分离_第1张图片

三.安装amoeba
先决条件:
   1.Java SE 1.5或以上
   2.支持mysql4.1以后的版本
   3.网络环境至少运行了一个mysql4.1以上的服务

1.安装java运行环境
Amoeba框架是基于Java SE1.5开发的,因此需要安装jdk,可以到oracle官网访问下载http://www.oracle.com/technetwork/java/javase/downloads/index.html

2. rpm -ivh jdk-7u80-linux-x64.rpm
 ln -s /usr/java/jdk1.7.0_80/ /usr/java/jdk1.7 #为了方便,创建软连接

3.配置java环境变量
export JAVA_HOME=/usr/java/jdk1.7
PATH=$JAVA_HOME/jre/bin:$JAVA_HOME/bin:$PATH:/usr/local/httpd/bin

source /etc/profile

4.安装amoeba
到此地址下载合适版本:https://sourceforge.net/projects/amoeba/files/
tar zxf /root/amoeba-mysql-1.2.1-GA.tar.gz -C /usr/local/
chmod +x /usr/local/amoeba/bin/amoeba

5.在master,slave上创建用户并赋予相应的权限
Master:grant select,insert,update,delete on *.* to amoeba@'192.168.154.%' identified by 'gege123';
flush privileges;
Slave: grant select on *.* to amoeba@'192.168.154.%' identified by 'gege123';

四.配置MySQL+Amoeba实现读写分离
1.配置mysql主从复制
关于mysql主从复制实现内容,请参考一下网址,这里不做过多赘述
http://blog.csdn.net/qq_30256711/article/details/78796311

2.配置amoeba
vim /usr/local/amoeba/conf/amoeba.xml


 
  
  3306 #此处为代理服务器对外访问的端口
  
  
 
  192.168.200.128 #此处为代理服务器对外访问的IP地址
  
  
  100 #此参数是读客户端,databaseserver段网络数据包的线程数
  
  
  80 #此参数是读操作客户端的线程数
  
  
  100 #此参数为处理返回数据包的服务端的线程数
  
  
  128 # 数据缓冲池大小
  
  
  true  
  
  
  root #此处是验证客户端的用户名
  
  
  
  oldboy# 此处是验证客户端的密码
  
  
  
  30
 

 
 
 
  
   com.meidusa.amoeba.net.AuthingableConnectionManager
   
   
  

 

 
 
  
  
   
   
   
    defaultManager
    
    
    3308
    
    
    192.168.200.131
    test1
    
    
    amoeba
    
    
    
    
    gg123
   
    
   

   
   
   
    200 #最大的活动连接数,如果超过此连接,则会等待
    200 #最大的空闲连接数,如果超过次值,则会关闭多余空闲连接
    10 #最小的空闲连接数,连接池将保持最小空闲连接,即使这些连接长久不用
    600000 #连接空闲多少时间将被关闭
    600000 #用于驱逐空闲连接没间隔多少时间检查一次空闲连接
    true
    true
   

  

  
  
  
   
    
    1
    
    
    server1
   

  

  
   
   
    #连接工厂实现类
    defaultManager
    
    
    3307
    
    
    192.168.200.131
    test1 #连接初始化的schema
    
    
    amoeba
    
    
    
    
    gg123
   
    
   

   
   
   
    200
    200
    10
    600000
    600000
    true
    true
   

  

  
  
  
   
    
    1
    
    
    server1
   

  

  
   
    
    1
    
    
    server2
   

  

  
  
 
 
 
  ${amoeba.home}/conf/rule.xml
  ${amoeba.home}/conf/functionMap.xml #
  ${amoeba.home}/conf/ruleFunctionMap.xml
  1500
  master
  
  
  master
  slave
 
  true
 



3.配置玩amoeba.xml后就可以使用
chmod +x /usr/local/amoeba/bin/amoeba
/usr/local/amoeba/bin/amoeba 命令启动了


你可能感兴趣的:(Mysql)