mysql 读写分离 amoeba实现

【MySQL 基于Amoeba读写分离】 在实际的生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是安全性,高可用还是并发等各个方面都不能完全满足实际需求的,因此一般来说都是通过主从复制的方式来同步数据,再通过读写分离来提供数据的高并发负载能力这样的方案来进行部署。 简单来说,读写分离就是只在主服务器上写,只在从服务器上读,基本的原理是让主数据库处理事务性查询,而从数据库处理select查询,数据库复制被用来把事务性查询导致的改变更新同步到集群中的从数据库。 阅读详情


读写分离 这里使用amoeba实现 amoeba是用java写的 所以必须先装好jdk 然后配好环境变量

我这里是在java官网下的jdl1.8 的rpm包 直接yum安装 默认安装在/usr/java/jdk1.8.0_161/



配好环境变量后 命令行 java -version 查看java版本

并且 java在命令行也可以补齐了


java弄好之后 我们要找到 amoeba的包 我这里是用的amoeba-mysql-3.0.5-RC 这个版本 

本来有用的是2.0.1版本 但是当时启动amoeba的时候总是提示stack size too small at least 228k

然后解决方法是编辑amoeba安装目录下的一个 jvm.properties 这个文件 改一个-Xss196 的参数 改成 -Xss256 

然而我在2.0.1的版本下并没有找到这个文件 很尬  所以使用了3.0.5版本 这个地方我觉得就是这个opensource作者的问题了

这个文件是amoeba自带的配置文件 跟jdk一点关系都没有  你用这个配置起得来你自己写的软件你自己不知道么?真的很无语


然后我们需要在主从数据库mysql上 建立一个供amoeba使用的至少可以远程连接的账户 这个账户很关键 一会会写进amoeba的.xml配置文件里面

注意 在所有的后端数据库上都必须建立这个账户 因为这是amoeba接受前端的请求后 在后端进行操作实际所使用的身份 

那个db上没有 amoeba就访问操作不了这个db


关键的来了 

然后我们要在amoeba上做配置了

cd /usr/loca/amoeba(这个是我amoeba的解压目录)

vim dbServer.xml   #这个是amoeba的第一个关键配置文件

定义了 后端的节点 amoeba的访问 以及slave集群


要点1:

schema这个参数指定amoeba可以控制的库 这里amoeba是不能控制除了这个参数里写的库的其他的库 所以我们刚刚的用户授权也是基于这个库的 

讲道理这里应该可写 * 表示 反正这里怎么写 授权就要怎么给

要点2:

紧随其后的user & password 参数 我们给的就是刚刚在所有后端授权建立的账户 的用户名 密码 这个是amoeba能成功访问后端的关键


要点3:

下面的dbServer语句块 定义了后端的节点库 这个名字可以随意 但是要和后面的 amoeba.xml里面的规则保持一致

我们在这里给出两个 一个master 以及它的IP ,一个slave 以及它的IP

要点4:

其实amoeba默认好像是用于这种一主多从模式的 配置文件默认有slave集群的语句块 并且还可以实现loadbalance 

这里参数1 表示roundrobin 轮叫

这里也可以仿照这个模式定义master的集群 一样的

要是你有多个slave 可以按照注释那样 逗号隔开 全部加入 poolname这个参数后面 表示他加入这个池 多个master同理

至于哪个池怎么工作 则是在amoeba.xml里面定义


下面这个就是amoeba.xml的配置了 

这里定义了 用户访问amoeba时候所用的虚拟账户 注意 这个账户是amoeba的账户 并不是真实的mysql的账户 只是用户用它登陆amoeba

amoeba相当于一个代理 将来就用这个虚拟的账户登陆amoeba 然后amoeba用上面授权了建立的真实数据库账户 在各个后端数据库里访问 操作


这一块 就是定义那个后端怎么工作了 

defaultpool 表示默认池 默认其他操作在这个池中的后端数据库里面做

readpool 读池 writeool 写池

我这里只有两个数据库 就直接写上面dbServer里定义的server了 如果你上面定义了master&slave 池的话 这里写池也是可以的 


然后我们到amoeba的安装目录下 cd /bin

直接./lancher 运行启动脚本 

果不其然报错 栈空间不足 果断返回amoeba的主目录 

vim jvm.properties 然后如下图设置参数 

重新启动脚本


虽然他看上去好像有报错 但是确实启动了 /尬


查看下amoeba的默认listen端口 没毛病


然后我们直接在安装amoeba的这台主机上 虽然没有装数据库 但居然能直接使用mysql 命令

直接远程登录 amoeba服务 使用amoeba虚拟账号 -P参数表示请求端口8066 必加!

stop掉读池中的db(slave) select操作报错 

stop掉写池中的db(master) insert 操作报错 


看到这样的结果 表示完成了读写分离

Amoeba实现mysql读写分离 一、关于读写分离 amoeba : 英[ə’mi:bə] 读写分离(Read/Write Splitting),基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。 数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 二、Amoeba 是什么 Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路 阅读详情

相关推荐

使用Amoeba实现MySQL读写分离

读写分离是在高并发的数据库环境中提高性能和可扩展性的一种常用方法。Amoeba是一个开源的MySQL代理,它可以帮助实现MySQL的读写分离。本文将介绍如何使用Amoeba来实现MySQL读写分离,并提供相应的源代码。通过使用Amoeba代理,我们可以轻松实现MySQL的读写分离。在应用程序中执行读操作和写操作,然后查看MySQL的主从复制状态来验证是否实现了读写分离。现在,我们需要修改应用程序的配置文件,将数据库连接的地址和端口指向Amoeba代理。Amoeba代理将会监听配置文件中指定的地址和端口。

CyberXZ的博客 212

mysql基于Amoeba(变形虫)实现读写分离

​ Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。主要解决:• 降低 数据切分带来的复杂多数据库结构• 提供切分规则并降低 数据切分规则 给应用带来的影响• 降低db 与客户端的连接数• 读写分离。

极客云曦前端 1084

PX4实战指南:通过遥控器通道直连实现舵机PWM控制

本文详细介绍了如何通过PX4飞控实现遥控器通道直连控制舵机PWM输出的完整流程。从硬件准备、遥控器配对到PX4参数配置和硬件连接,提供了实战技巧和常见问题解决方案,帮助无人机爱好者快速掌握舵机控制技术。重点讲解了AUX Passthrough模式设置和PWM参数调整等关键步骤。

weixin_29195217的博客 154

mysql主从复制与读写分离---amoeba

binlog-format有row、statement、mixed三种格式,row指的是把改变的内容复制过binlog-format=ROW去,而不是把命今在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL 主服务器开始写入数据,就会记录在二进制日志文件中。这时从服务器就会让 I / O 线程在 主服务器上打开一个口,这时会读取二进制日志文件写入中继日志中,SQL 线程就会读取中继日志,并重放日志中的事件,从服务器就会通过日志来同步主服务器。

weixin_70422105的博客 542

深入解析AndroidManifest.xml与device_admin.xml:打造完美DeviceOwner应用配置

本文深入解析了Android企业级开发中DeviceOwner应用的核心配置文件AndroidManifest.xml与device_admin.xml。详细阐述了如何精准声明DeviceAdminReceiver、定义管理策略,并提供了通过ADB命令进行设置与验证的实战指南,帮助开发者构建权限完整、配置正确的设备所有者应用。

ice55的博客 680

众灵科技24路舵机控制器二次开发实战(1)-STM32串口指令控制详解

本文详细介绍了如何通过STM32单片机对众灵科技24路舵机控制器进行二次开发,实现串口指令控制。文章从硬件连接、通信协议解析到STM32代码实战,手把手指导开发者打通控制链路,并重点讲解了如何调用预设动作组驱动六足机器人,为后续集成传感器、无线遥控等高级功能奠定基础。

weixin_29188997的博客 484

MySQL数据库使用amoeba读写分离操作

1、准备5个虚拟机master、slave、slave1、amoeba、client。主服务器配置完成,在从服务器配置完成前不要在操作主服务器。3.4slave1虚拟机同上操作,创建新的用户slave1。2.3删除原有java命令,建立新的命令链接。3、配置slave、slave1从服务器。2.2安装ntp服务,定义主从时间同步。从服务器也要安装ntp。2.1安装MySQL数据库。2、配置master虚拟机。2、安装配置amoeba环境。1、主从服务器配置登录用户。2.4安装amoeba。

shangwhao521的博客 582

自适应陷波器的原理与实现

x(t)是叠加有两个频率干扰信号的输入信号,s(t)是需要保留的有用信号,在输入信号中,我们只知道频率w1和w2,但不知道信号的幅度A和相位θ,自适应陷波器可以估计两个未知的幅度和相位值,这需要我们提供两路相互正交的单频信号,如cos(w1t)、sin(w1t),通过调整其权值,从而合成出与干扰信号完全相同的信号A1cos(w1t+θ1),从而实现干扰信号的滤除。采用LMS算法,在保证不损失其他有用信号的情况下,有效地抑制输入信号中某一频率的干扰,如需滤除多个频率,只需要增加相应的输入信号。

Melkiades2333的博客 6889

​​​amoeba实现MySQL读写分离

​​​amoeba实现MySQL读写分离

虫虫的博客 1147

基于IP2369与STM32的45W双向PD移动电源设计

USB PD(Power Delivery)是一种面向高功率、智能协商的通用快充协议,其核心在于通过BMC编码在CC线上完成供电能力(PDO)动态匹配与电压/电流精准调控。IP2369作为高度集成的PD协议管理芯片,内置PHY、协议引擎与MOSFET驱动,可卸载MCU实时通信压力;而STM32F103系列凭借低功耗STOP模式与丰富外设,成为电源状态管理与用户交互的理想协处理器。该组合显著提升系统鲁棒性与能效比,适用于便携式移动电源、嵌入式备用电源及PD协议教学验证等场景。本文围绕IP2369配置电阻精度、

weixin_42608299的博客 516

VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程

关于VSCode上搭建C/C++开发环境的内容,到这里就结束了,这里博主感叹一下,VSCode真的挺强大的,作为一个编辑器,可以通过和编译器链接成为开发环境,将环境配置好的话,在这上面写代码似乎也是个不错的选择。大家有任何疑问,欢迎在评论区中提出,本篇博客有任何问题和错误也欢迎来和博主讨论,真心希望能和大家一起进步。最后,如果本篇博客对你有帮助的话,能不能给博主一个三连啊!

2303_79329831的博客 8万+

mysql amoeba 事务_MySQL基于Amoeba实现读写分离

在实际的生活环境中,如果对数据库的读和写都在同一个数据库服务中操作,无论是在安全性,高可用还是高并发等各个方面都不能完全满足实际需求的,因此一般来说都是通过主从复制的方式来同步数据,再通过读写分离来提升数据的高并发负载能力这样的方案来进行部署。读写分离就是只在主服务器上写,只在从服务器上读,基本的原理是让主数据库处理事务性查询,而从数据库处理select查询,数据库复制被用来把事务性查询导致的改变...

weixin_39638801的博客 224

空天大模型详解

空天大模型是指面向空天信息领域(如卫星遥感、导航、气象等)设计的多模态人工智能模型,能够处理海量遥感数据、多传感器信息及跨时空分析任务。多模态融合:整合可见光、雷达、热红外、多光谱等多源遥感数据,构建统一表征空间,例如“空天·灵眸”3.0版支持航空、卫星及无人机数据的自动化解译。轻量化与高效推理:针对星载计算场景,采用分层量化、跨模态蒸馏技术压缩模型参数(如JigonGPT从1.02B压缩至0.23B,性能仅牺牲5.2%)18,并通过热传导架构提升计算速度2.4倍。神经符号结合。

zxy98的专栏 1569

Amoeba 实现MySQL读写分离

Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy,它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行.基于此可以实现负载均衡、读写分离、高可用性等需求,与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便.

微软技术分享 1万+

3060台式机 Ubuntu 双系统部署 LingBot-Map 完整指南

摘要: 本文详细介绍了在配备RTX 3060显卡的台式机上部署Ubuntu双系统并安装LingBot-Map 3D重建模型的完整流程。LingBot-Map作为蚂蚁灵波科技开源的Transformer架构模型,在流式3D场景重建中展现出高效性能(20 FPS)和卓越精度(ATE仅6.42米)。指南涵盖关键准备步骤、UEFI分区原理、Ubuntu安装流程(推荐150GB空间及手动分区方案),以及后续驱动配置说明,特别强调RTX 3060需12GB显存支持,并提供了数据备份、Secure Boot处理等实用建议

huanghm88的专栏 309

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Amoeba】amoeba实现mysql读写分离

centos7:amoeba实现mysql读写分离。

喜欢你,像风走了八千里 不问归期 3454

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

amoeba实现mysql主从读写分离_Amoeba实现mysql主从读写分离

defaultManager330610.10.0.77testtest12345620020010600000600000truetrue1server11property name="poolNames">server1,server2${amoeba.home}/conf/rule.xml${amoeba.home}/conf/functionMap.xml${amoeba.home}...

weixin_26766559的博客 167

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

使用amoeba实现mysql读写分离

使用amoeba实现mysql读写分离 1、什么是amoeba? ​ Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。 主要解决: • 降低 数据切分带来的复杂多数据库结构 • 提供切分规则并降低 数据切...

爱笑的k11的博客 363

mysql 读写分离 amoeba_MySQL之-基于Amoeba实现读写分离详解(图文)

今天,我们继续MySQL的话题,今天为大家带来一篇基于Amoeba实现MySQL读写分离的方案文章,好我们直接进入今天的正题吧。一、服务器规划主机名IP地址节点liuyazhuang152192.168.0.152amoebaliuyazhuang153192.168.0.153写库liuyazhuang154192.168.0.154读库二、测试方案我们在192.168.0.152上安装amoe...

weixin_39637614的博客 306

amoeba mysql读写分离_Amoeba实现Mysql读写分离

环境规划Amoeba读写分离器172.16.254.144/16Mysql服务器(master)172.16.254.150/16Mysql服务器(slave)172.16.254.151/16一、先实现mysql主从复制,在master上使用yum安装mysql[root@localhost mysql]# yum -y install mysql mysql-server启用二进制日志,编辑/...

weixin_39732991的博客 231

使用Amoeba实现mysql读写分离

使用amoeba实现mysql读写分离 1、什么是amoeba? ​ Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据库合并结果。 主要解决: • 降低 数据切分带来的复杂多数据库结构 • 提供切分规则并降低 数据切分规则 给应用带来的影响 • 降低db 与客户端的连接数 • 读写分离 2、为什么要用Amoeba 目前要实现m

Add小兵的博客 249

mysql amoeba_MySQL基于Amoeba实现读写分离

读写分离应用分析:在企业用户中,在大量的数据请求下,单台数据库将无法承担所有读写操作。解决方法:配置多台数据库服务器以实现主从复制+读写分离。1、基于程序代码内部实现在代码中根据select、 insert 进行路由分类,这种方法目前生产环境中应用最广泛。优点是性能较好,因为在程序代码中实现,不需要增加额外的设备作为硬件开支。缺点是需要开发人员能来实现,运维人员无从下手。2、基于中间代理层实现代理...

weixin_42503881的博客 242

MySQL之——基于Amoeba实现读写分离

今天,我们继续MySQL的话题,今天为大家带来一篇基于Amoeba实现MySQL读写分离的方案文章,好我们直接进入今天的正题吧。 一、服务器规划 主机名 IP地址 节点 liuyazhuang152 192.168.0.152 amoeba liuyazhuang153 192.168.0.153 写库 liuyazhuang154

冰河的专栏 2447

Amoeba实现MySQL读写分离

配置 安装JDK和amoeba 1.上传jdk安装包到服务器 2.安装jdk chmod +x jdk-6u14-linux-x64.bin ./jdk-6u14-linux-x64.bin 一路空格输入yes同意协议即可 mv jdk1.6.0_14 /usr/local/jdk1.6 配置环境变量 vim /etc/profile 文件末尾追加 从新载入文件 source /etc...

天涯ur的博客 255

amoeba实现mysql主从读写分离_使用Amoeba实现MySQL的主从读写分离

前言:作者踏入Linux大门不久,这是第一个完成的功能演练。本文包含了MySQL+Amoeba实现主从读写分离的配置及个人过程中遇到的问题总结,网上相关教学也很多,如有错误和疏漏请多多指教。主从同步架构的优点读取工作交给了从服务器,降低了主服务器的压力在从服务器进行备份,避免备份期间影响主服务器服务当主服务器出现问题时,可以切换到从服务器。Amoeba介绍Amoeba(变形虫)项目,该开源框架于2...

weixin_32541663的博客 387
上一篇: mysql 5.7 主从复制
下一篇: mysql 高可用之mha实现
Christ0pher
博客等级 码龄9年 4粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值