一 环境以及软件版本:

系统:CentOS Linux release 7.2.1511 (Core)

MySQL:Server version: 5.6.33

Amoeba:amoeba-mysql-3.0.5-RC-distribution

JDK:1.7.0_80-b15 (Amoeba的运行需要jdk)

二 安装Amoeba:

1 下载好所需软件:

# ls

amoeba-mysql-3.0.5-RC-distribution.zip jdk-7u80-linux-x64.rpm

2 安装jdk

# yum -y install jdk-7u80-linux-x64.rpm

# -version

java version "1.7.0_80"

Java(TM) SE Runtime Environment (build 1.7.0_80-b15)

Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

3 解压Amoeba

# unzip amoeba-mysql-3.0.5-RC-distribution.zip

# mv amoeba-mysql-3.0.5-RC /usr/local/amoeba

# mv amoeba-mysql-3.0.5-RC /usr/local/amoeba

# cd /usr/local/amoeba/conf/

# vim amoeba.xml

3306 #设置amoeba监听的端口,默认是8066

10.0.0.159 #设置amoeba监听的ip地址

root #设置连接amoeba的用户

123456 #设置连接amoeba的密码

#(这里的账号密码和amoeba连接后端数据库服务器的密码无关)

master #设置amoeba默认的池,这里设置为matster

#这两个选项默认是注销掉的,需要取消注释,这里用来指定写库和读库

master

multiPool #这给的是一个组,如果这个组里有多个dbServers则可以负载均衡,此组在 dbServers.xml中设置

设置mysql库的信息,在当前目录下的dbServers.xml文件里

# vim dbServers.xml

#设置amoeba连接后端mysql的端口

3306

#设置缺省的数据库,当连接amoeba时,操作表必须显式的指定数据库名,即采用dbname.tablename的方式,不支持 use dbname指定缺省库,因为操作会调度到各个后端dbserver

test

#设置amoeba连接后端mysql的用户名和密码

amoeba

123456

#设置一个后端的dbServer,这里设置连接可写的master库,此名字可自定义,但要和amoeba.xml中调用的名字一致即可。

#后端mysql的ip地址

10.0.0.176

#设置一个后端的dbServer,这里设置连接可读的salve,此名字可自定义,但要和amoeba.xml中调用的名字一致即可。

#后端mysql的ip地址

10.0.0.193

#定义一个dbserver组

##选择调度算法,1表示轮询负载均衡,2表示权重,3表示HA, 这里选择1

1

slave #组成员,当有多个时用逗号分隔

三 mysql授权amoeba用户登录(此处我的两台mysql服务器master和slave已经做好了主从同步,并且已经验证成功,需要做主从同步请看 http://www.linuxidc.com/Linux/2018-01/150060.htm)

master上授权:

mysql> grant select,insert,update,delete on . to 'amoeba'@'10.0.0.%' identified by '123456';

mysql> flush privileges;

slave上授权:

mysql> grant select on . to 'amoeba'@'10.0.0.%' identified by '123456';

mysql> flush privileges;

注意:此处授权的用户密码要和dbServers.xml中配置的一致。如果你的mysql开启所有库主从同步则你在主上授权的用户会同步到从库,解决方法是:1在从库上降权;2主从同步时不让mysql库同步

四 启动amoeba:

#cd /usr/local/amoeba/bin

vim launcher

添加JAVA_HOME:

JAVA_HOME=/usr/java/jdk1.7.0_80

# cd /usr/local/amoeba/

# vim jvm.properties

修改VM_OPTIONS:

JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m"

# /usr/local/amoeba/bin/launcher

2018-01-02 23:34:21 [INFO] Project Name=Amoeba-MySQL, PID=48981 , starting...

log4j:WARN log4j config load completed from file:/usr/local/amoeba/conf/log4j.xml

2018-01-02 23:34:22,152 INFO context.MysqlRuntimeContext - Amoeba for Mysql current versoin=5.1.45- mysql-amoeba-proxy-3.0.4-BETA

log4j:WARN ip access config load completed from file:/usr/local/amoeba/conf/access_list.conf

2018-01-02 23:34:22,520 INFO net.ServerableConnectionManager - Server listening on /10.0.0.159:3306.

#启动成功

# ss -tanlp

LISTE 128 ::ffff:10.0.0.159:3306 :::*

五 测试:用另外的mysql客户端连接amoeba,测试时我暂停了主从同步,以便更直接的看出效果

# mysql -uroot -p123456 -h10.0.0.159

主库上新增一条数据

从库上加入一条数据

回到mysql连接的客户端验证:

只能查看从库的数据,说明基本成功,进一步验证,在客户端插入一条数据

并且客户端在从库上没有查询到新插入的数据,回到主库确认下:

到此验证成功,开启主从同步即可实现读写分离(开始同步前,请自行清理掉有差异的数据,以便主从能正常运行)

amoeba mysql exists_Amoeba实现MySQL数据库读写分离相关推荐

  1. java spring mysql配置_java相关:mysql+spring+mybatis实现数据库读写分离的代码配置

    java相关:mysql+spring+mybatis实现数据库读写分离的代码配置 发布于 2020-4-4| 复制链接 分享一篇关于关于mysql+spring+mybatis实现数据库读写分离的代 ...

  2. mysql+spring+mybatis实现数据库读写分离[代码配置] .

    场景:一个读数据源一个读写数据源. 原理:借助spring的[org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource] ...

  3. mysql数据库字段变形_详解如何利用amoeba(变形虫)实现mysql数据库读写分离

    摘要:这篇MySQL栏目下的"详解如何利用amoeba(变形虫)实现mysql数据库读写分离",介绍的技术点是"MySQL数据库.数据库读写分离.amoeba.MySQL ...

  4. mybatis获取mysql源数据类型_spring集成mybatis实现mysql数据库读写分离

    前言 在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈.幸运的是目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上. ...

  5. Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...

    作者 | Pythonicc 责编 | 王晓曼 出品 | CSDN博客 简介 1.什么是数据库读写分离 读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELET ...

  6. mysql读写分离java配置方法_springboot配置数据库读写分离

    为什么要做数据库读写分离 大多数互联网业务,往往读多写少,这时候,数据库的读会首先称为数据库的瓶颈,这时,如果我们希望能够线性的提升数据库的读性能,消除读写锁冲突从而提升数据库的写性能,那么就可以使用 ...

  7. ceph集群和数据库到底是储存数据_Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...

    作者 | Pythonicc责编 | 王晓曼出品 | CSDN博客简介1.什么是数据库读写分离读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),而从 ...

  8. 你如何理解mysql的读写分离_面试官:谈谈你对Mysql数据库读写分离的了解,并且有哪些注意事项?...

    这篇文章讲述的不是Mysql具体的如何实现读写分离,而是指什么时候需要上读写分离,及其相关的注意事项. 因为用户的增多,数据的增多,单机的数据库往往支撑不住快速发展的业务,所以数据库集群就产生了!今天 ...

  9. thinkphp mysql读写分离_ThinkPHP5分布式数据库读写分离

    项目想要数据库读写分离,需要配置两个方面,一个是数据库配置,另一个是ThinkPHP5配置,前面写过一篇关于MySQL读写分离配置的文章MySQL主从同步及读写分离,这篇介绍ThinkPHP5里怎么运 ...

  10. 什么是mysql的读写分离_什么是数据库读写分离?

    原文:https://baijiahao.baidu.com/s?id=1614304400276051465&wfr=spider&for=pc 想用数据库"读写分离&qu ...

最新文章

  1. [转帖]tar高级教程:增量备份、定时备份、网络备份
  2. 【POCO】POCO学习总结(二)——配置选择
  3. Hyper-V Server虚拟机快照(检查点)
  4. 你真的了解 Load Balance 嘛
  5. 有监督的神经网络模型
  6. 跨境B2B电商市场血雨腥风,供应链管理系统成争夺焦点
  7. Response.AddHeader 参数
  8. 2007年五一通过了驾驶证考试(5/7,5/8)
  9. 大数据分析取得的成果有哪些
  10. 【运筹帷幄】网站打开慢故障排查思路
  11. .Net Core裁剪图片并存入数据库
  12. AI、量子计算引爆硬科技创新,雷鸣、王海峰、施尧耘等北大120周年论道信科最前沿...
  13. 我的世界java能开光追吗_《我的世界》开光追是怎样一种体验
  14. 【码农学编曲】认识五线谱
  15. IP地址中的A、B、C类地址详解
  16. tcpdump显示IP
  17. html中的colspan是什么意思
  18. 安川机器人程序还原_安川机器人使用说明书.pdf
  19. matlab对ADC动态性能进行分析
  20. 计算机组装与维护双系统安装,怎么装双系统win7和win10?怎么装双系统教程

热门文章

  1. 认知智能整体技术框架简介介绍
  2. 报错:NoSuchAlgorithmException: Algorithm HmacSHA1 not available
  3. jQuery插件开发全解析,jQuery.extend , (function($){ , $.fn.pluginName
  4. 深入理解LINUX内核 第三版2.6 笔记
  5. Java基础项目实战--大学生求职招聘信息网站系统
  6. 自研代码率超70%,国产大数据基础软件第一股星环科技成功上市!
  7. 如何在 Vim 中用换行符替换字符
  8. MySQL慢查询 - 查看慢查询日志
  9. shineblink HC-SR505人体红外感应传感器
  10. redis常见使用场景与实例