1.准备三台服务器 我的是centos7版本的

做MySQL的主从状态 可以参考

https://www.cnblogs.com/chenxiaodou/articles/11993283.html

在MySQL的主从的服务器上给amoeba服务器授权一个可以操作读写的用户

1
2
grant all on *.* to 'amoeba'@'192.168.18.%' identified by '123';
flush privileges;  

在Amoeba的服务器上安装Amoeba

1.安装jdk版本  要安装1.6的版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
将JDK的二进制包安装在此路径下cd /usr/local
给予权限
chmod +x  jdk-6u14-linux-x64.bin
在当前路径下开始执行
./ jdk-6u14-linux-x64.bin
一直按回车 直到遇见让你输入yes or no  输入yes即可回车
更改jdk安装目录的名字
 
mv  jdk1.6.0_14   jdk1.6
 
修改环境变量  在末尾加入以下内容
vim /etc/profile
------------------------------------------------------------
export AMOEBA=/usr/local/amoeba
export JAVA_HOME=/usr/local/jdk1.6
export PATH=$PATH:$JAVA_HOME/bin:$AMOEBA/bin
------------------------------------------------------------
使增加的变量生效
source /etc/profile 

 下载Ameoba的安装包

1
2
cd /usr/local
wget http://nchc.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.1.0-RC5.tar.gz 

为Amoeba创建安装目录

1
2
3
4
5
6
mkdir /usr/local/amoeba
cd /usr/local/amoeba
在当前路径下下载amoeba
wget http://nchc.dl.sourceforge.net/project/amoeba/Amoeba%20for%20mysql/2.x/amoeba-mysql-binary-2.1.0-RC5.tar.gz
解压Ameoba的安装包
tar -zxf amoeba-mysql-binary-2.1.0-RC5.tar.gz

  

配置文件dbServers.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
cd /usr/local/ameoba/conf
vim dbServers.xml
-----------------------------------------------------------------------------------------
……
    <!-- mysql port -->
    <property name="port">3306</property>
 
     <!-- mysql schema -->
    <property name="schema">test</property>
 
     <!-- mysql user -->
     <property name="user">amoeba</property>  //MySQL主从中给予权限的用户
 
     <!--  mysql password-->
     <property name="password">123</property>  //MySQL主从中给予权限的用户的密码
     
            ……
    <dbServer name="server1"  parent="abstractServer">
                <factoryConfig>
                        <!-- mysql ip -->
                        <property name="ipAddress">192.168.18.141</property>  //MySQL主的IP地址
                </factoryConfig>
        </dbServer>
 
        <dbServer name="server2"  parent="abstractServer">
                <factoryConfig>
                        <!-- mysql ip -->
                        <property name="ipAddress">192.168.18.142</property>   //MySQL从的IP地址
                </factoryConfig>
        </dbServer>
        <dbServer name="slave" virtual="true">
                <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
                        <!-- Load balancing strategy: 1=ROUNDROBIN , 2=WEIGHTBASED , 3=HA-->
                        <property name="loadbalance">1</property>
 
                        <!-- Separated by commas,such as: server1,server2,server1 -->
                        <property name="poolNames">server2</property>
                </poolConfig>
        </dbServer>

 编辑ameoba,.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
cd /usr/local/ameoba/conf
vim ameoba.xml
----------------------------------------------------------------------------------
……
<property name="authenticator">
                                <bean class="com.meidusa.amoeba.mysql.server.MysqlClientAuthenticator">
 
                                        <property name="user">jave</property>
 
                                        <property name="password">123</property>
 
                                        <property name="filter">
                                                <bean class="com.meidusa.amoeba.server.IPAccessController">
                                                        <property name="ipFile">${amoeba.home}/conf/access_list.conf</property>
                                                </bean>
                                        </property>
                                </bean>
                        </property>
……
<queryRouter class="com.meidusa.amoeba.mysql.parser.MysqlQueryRouter">
                <property name="ruleLoader">
                        <bean class="com.meidusa.amoeba.route.TableRuleFileLoader">
                                <property name="ruleFile">${amoeba.home}/conf/rule.xml</property>
                                <property name="functionFile">${amoeba.home}/conf/ruleFunctionMap.xml</property>
                        </bean>
                </property>
                <property name="sqlFunctionFile">${amoeba.home}/conf/functionMap.xml</property>
                <property name="LRUMapSize">1500</property>
                <property name="defaultPool">server1</property>
 
                <property name="writePool">server1</property>
                <property name="readPool">slave</property>
                <property name="needParse">true</property>
        </queryRouter>
 
--------------------------------------------------------------------------------

  启动amoeba

1
2
cd /usr/local/amoeba/bin
./amoeba start  出现以下字样

 表示启动成功 

把Amoeba的终端再开启一台

关闭防火墙 SELinux 安装数据库

1
2
3
systemctl stop firewalld
setenforce 0
yum -y install mariadb mariadb-server

登录amoeba测试读写分离效果

1
2
3
4
5
6
7
mysql -ujave -p123 -h192.168.189.167 -P8066
create database ceshi charset utf8;
可以在MySQL主从数据库中查看是否存在这个数据库
在从的MySQL数据库中停掉从的同步
stop slave;
在amoeba的服务器上再创建一个数据库
这时再分别去主从数据库上查看 只有主的可以看到刚刚创建的数据库 而从上看不到 这样就实现了读写分离

  

 

amoeba 实现读写分离(借鉴)的更多相关文章

  1. Amoeba mysql读写分离搭建及介绍

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

  2. Mysql 基于 Amoeba 的 读写分离

    首先说明一下amoeba 跟 MySQL proxy在读写分离的使用上面的区别: 在MySQL proxy 6.0版本 上面如果想要读写分离并且 读集群.写集群 机器比较多情况下,用mysql pro ...

  3. 基于主从复制的Mysql双机热备+amoeba实现读写分离、均衡负载

    读写分离指的是客户只能在主服务器上写,只能在从服务器上读,当然了,这也是要看配置,你可以在主服务器配置读的功能,但是在从服务器上只能读不能写,因为从服务器是基于binlog对主服务器的复制,如果在从服 ...

  4. amoeba实现读写分离

    amoeba的运行环境依靠java的jdk: 下面执行amoeba的安装不走 # mkdir /usr/local/src/amoeba 上传文件:amoeba-mysql-binary-2.2.0. ...

  5. MySQL+Amoeba实现数据库主从复制和读写分离

    MySQL读写分离是在主从复制的基础上进一步通过在master上执行写操作,在slave上执行读操作来实现的.通过主从复制,master上的数据改动能够同步到slave上,从而保持了数据的一致性.实现 ...

  6. 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 ...

  7. Mysql读写分离方案-Amoeba环境部署记录

    Mysql的读写分离可以使用MySQL Proxy,也可以使用Amoeba.Amoeba(变形虫)项目是一个类似MySQL Proxy的分布式数据库中间代理层软件,是由陈思儒开发的一个开源的java项 ...

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

    Amoeba的实用指南 http://docs.hexnova.com/amoeba/ 如何实现mysql读写分离 : 通常来说有两种方式: 1,应用程序层实现 2,中间件层实现 应用层实现 应用层实 ...

  9. Amoeba读写分离(MySQL)

    实验操作环境: centos服务器  三台机器 role: 192.168.189.129  master-主 192.168.189.130  master-从 192.168.189.131    ...

随机推荐

  1. .net core 下载文件 其他格式

    app.UseStaticFiles(); app.UseStaticFiles(new StaticFileOptions { //FileProvider = new PhysicalFilePr ...

  2. Open Cascade 转化为OpenSceneGraph中的Mesh

    #include <osgDB/ReadFile> #include <osgViewer/Viewer> #include <osgGA/StateSetManipul ...

  3. gwyh 测试赛 验题人 - 题解 (非std做法)

    测试赛 - ljc20020730 解题报告 标签(空格分隔): solution Task A Tiat's easy question 首先,判断图中是否存在长度为奇数的环等价于判断图是否为二分图 ...

  4. 【转】稳定婚姻问题(Stable Marriage Problem)

    转自http://www.cnblogs.com/drizzlecrj/archive/2008/09/12/1290176.html 稳定婚姻是组合数学里面的一个问题. 问题大概是这样:有一个社团里 ...

  5. JS基础-连续赋值

    重点:先声明,从左向右,声明变量分配内存,后赋值,从右向左 问题 var a = {n: 1}; var b = a; a.x = a = {n: 2}; console.log(a.x); cons ...

  6. Thrift支持的基本数据类型

    'bool' | 'byte' | 'i8' | 'i16' | 'i32' | 'i64' | 'double' | 'string' | 'binary' | 'slist'(deprecated ...

  7. 移动端 iphone手机在中文情况下不执行keyup事件

    问题:移动端 在

  8. Rust Linking With C Library Functions

    #[link(name = "c")] extern "C" { fn scanf(format: *const u8, ...); } fn main() { ...

  9. 【CentOS】yum安装教训

    前言:本来想安装sl在新安装的centos7上,网上搜了教程,很多都是先要你yum -y update,如下: 1.更新yum源: yum -y update 2.依赖安装: wget http:// ...

  10. vscode 配置go环境 可调试

      1.go下载安装并配置环境变量 2.安装工具: 1)安装gocode go get -u -v github.com/nsf/gocode 2)安装godef go get -u -v githu ...