mysql amoeba_MySQL基于Amoeba实现读写分离

article/2025/9/13 13:01:09

读写分离应用分析:

在企业用户中,在大量的数据请求下,单台数据库将无法承担所有读写操作。解决方法:

配置多台数据库服务器以实现主从复制+读写分离。

c2d251a34ed3d89e97e016689a6e7246.png

1、基于程序代码内部实现

在代码中根据select、 insert 进行路由分类,这种方法目前生产环境中应用最广泛。优点是性能较好,因为在程序代码中实现,不需要增加额外的设备作为硬件开支。缺点是需要开发人员能来实现,运维人员无从下手。

2、基于中间代理层实现

代理一般位于客户端和服务器之间,代理服务器接到客户端请求后通过判断后转发到后端数据库。

常见的代理服务器:

MySQL-Proxy

Amoeba

实验环境:

amoeba: 192.168.200.114

master:192.168.200.111

slave1:192.168.200.112

slave2:192.168.200.113

client:192.168.200.123

前提是主从服务器支持主从复制

配置amoeba服务器:

1.安装amoeba软件

准备好jdk-6u14-linux-x64.bin文件

2.给与该文件执行权限

chmod +x jdk-6u14-linux-x64.bin

3.执行该文件

./jdk-6u14-linux-x64.bin

执行后会进入阅读模式,一直按回车,提示是否安装是输入yes

4.将文件移动

mv jdk1.6.0_14/ /usr/local/jdk1.6

5.修改配置文件

vim /etc/profile

在最后末行添加以下信息:

export JAVA_HOME=/usr/local/jdk1.6

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$HOME/bin

export AMOEBA_HOME=/usr/local/amoeba

export PATH=$PATH:$AMOEBA_HOME/bin

6.查看java版本信息(不建议安装1.7以上的版本,推荐使用1.6及以下)

java -version

fb80bb05a82baf509d82b950b485f32d.png

显示1.7的版本

7.删除java文件

rm -rf /usr/bin/java

8.重新加载文件信息

source /etc/profile

9.再次查看版本信息

java -version

d48cbe1436cbe542108b19a1850794a2.png

10.安装配置amoeba

事先准备amoeba包

amoeba-mysql-binary-2.2.0.tar.gz

11创建文件目录

mkdir /usr/local/amoeba

解包:

tar xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/

12.给与755的权限

chmod -R 755 /usr/local/amoeba/

13.执行amoeba

/usr/local/amoeba/bin/amoeba

98d1f2c981d3c8ea36b597547e435067.png

#出现amoeba start|stop证明配置没有问题

在MySQL数据库服务器上对amoeba授权:

1.在每一台服务器上登录数据库执行:

grant all on *.* to 'admin'@'192.168.200.%'identified by'123123';

2.刷新授权表:

flush privileges;

在amoeba服务器上编辑amoeba.xml配置文件,设置读写分离:

cd /usr/local/amoeba/conf/

cp amoeba.xml amoeba.xml.origin

vim amoeba.xml

afeed553b879fd7cc51d68f33091ce04.png

设置一个用户,后面的客户端访问时使用

f30e4fd5a745a4a54fea49218d350550.png

设置登录密码

88479fd81ef9009e15e4923e5b2f03da.png

将注释去掉,设置默认的服务器池||写服务器池||读服务器池

在amoeba服务器上编辑配置文件,设置登录MySQL服务器的用户及密码、MySQL服务器节点的IP地址、负载均衡的算法:

cd /usr/local/amoeba/conf/

cp dbServers.xml dbServers.xml.origin

vim dbServers.xml

cc3afc5b7504202ebaa21759ce9faff6.png

默认端口为3306,设置访问MySQL数据库的所用的用户名和密码

3566608b7995f1c9e8f783b04c5f40c9.png

依次为:主MySQL服务器的名称和IP地址

从MySQL服务器1的名称和IP地址

从MySQL服务器2的名称和IP地址

与主从MySQL服务器对应

9e60e42bb413e347d3dc7be52a5c52e7.png

设置readpool

b5b96a084ae176791df8ad545d60cb9d.png

负载均衡算法值为1,轮询算法

2ddb672fb0068034044a702fcee0097d.png

前面定义的服务器节点名

测试环境:

启动amoeba

1.检查配置是否出错

/usr/local/amoeba/bin/amoeba

amoeba start|stop表示没出错

2.起服务

/usr/local/amoeba/bin/amoeba &

3.检查端口8066

netstat -lnpt|grep java

791ce720d0b72ba060a9ce73f0121041.png


http://chatgpt.dhexx.cn/article/eH1P9wCX.shtml

相关文章

mysql amoeba 配置_Amoeba新版本MYSQL读写分离配置

官方简介 Amoeba的中文意思是变型虫 主要解决: • 降低 数据切分带来的复杂多数据库结构 • 提供切分规则并降低 数据切分规则 给应用带来的影响 • 降低db 与客户端的连接数 • 读写分离 个人简单描述 可能你还没明白Amoebla这鬼东西主要干麻的呢!比方说…

amoeba mysql_Mysql 基于 Amoeba 的 读写分离

首先说明一下amoeba 跟 MySQL proxy在读写分离的使用上面的区别: 在MySQL proxy 6.0版本 上面如果想要读写分离并且 读集群、写集群 机器比较多情况下,用mysql proxy 需要相当大的工作量,目前mysql proxy没有现成的 lua脚本。mysql proxy根本…

amoeba mysql binary_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.168.88.10 l slave1:192.168.88.11 一: 安装jdk1.5以上版本 1.1 卸载centos服务器自带版本jdk 1.1.1 …

amoeba-mysql主从复制配置

amoeba-mysql主从复制配置 主mysql192.168.8.186 1. 同步时间ntpdate ntp.org.cn 2. 打开mysql配置文件/etc/my.cnf,在mysqld下添加 a) log-binmaster-bin ---------启动二进制日志系统 b) server-id1 ---------服务id,主服务器server-id比从服务器serv…

mysql amoeba 事务_MySQL-Amoeba

Amoeba 变形虫 Amoeba 变形虫服务默认端口号8066 该软件能识别读写请求,把读写请求分配到不同的后端MySQL服务器 不用像MySQL-router用端口进行区分读写。 实验: 为了查看读写分离效果 本实验就不配置主从复制 1、 首先IP规划 amoeba:192.168.1.76 master:192.168.1…

amoeba mysql proxy_mysql-proxy和amoeba 分别实现Mariadb读写分离

内容概览: 1、mysql-proxy实现Mariadb读写分离 1、1 拓扑图和环境介绍 1、2 mysql-proxy安装 1、3 设置mysql-proxy 1、4 主节点添加mysql-proxy可访问用户 1、5 读写分离验证 2、amoeba 2、1 amoeba工作原理图 2、2 环境拓扑 2、3 配置JAVA环境 2、4 安装配置amoeb…

amoeba mysql_使用Amoeba 实现MySQL DB 读写分离

Amoeba(变形虫)项目是一个开源框架,于2008年开始发布一款 Amoeba for MySQL软件; 这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发&am…

amoeba mysql_mysql中间件-amoeba

中间件:一种提供在不同技术、不同的软件之间共享资源的程序,更大化了利用了数据库的性能,可以无限扩展(注:真实环境中并非如此) 数据库的中间件: mysql proxy (官方版本)性能低,需要lua 脚本 atlas 性能低&…

Amoeba

1.介绍 Amoeba是mysql代理,增强mysql。类似的产品还有MyCat (mysql代理) 2.资源:点击打开链接c82k 3.准备:amoeba是基于java的所以必须有jdk 4.上传amoeba 5.解压tar包 6.配置文件 amoeba配置文件两个 dbServer…

Mysql基于Amoeba_读写分离搭架

一、Amoeba简介 Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求&#xff0…

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

一,Amoeba介绍 1、什么是amoeba? ​ Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发。座落与Client、DB Server(s)之间。对客户端透明。具有负载均衡、高可用性、sql过滤、读写分离、可路由相关的query到目标数据库、可并发请求多台数据…

Amoeba:开源的分布式数据库Porxy解决方案

什么是Amoeba? Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布式数据库代理层(Database …

findbugs html报告,利用findBugs插件来扫描代码,并用ant生成报告

最近项目要用findbugs插件来生成报告,总结了一下用法和如何生成报告 1, 把下载的压缩包解压后,把 copy到eclipse的plugin目录中去; 2, 重新启动eclipse 3, 打开eclipse->window->Preferences&#xf…

AS之Findbugs

一 前言 Findbugs是由 National Science Foundation支持的一个用静态分析的方式来寻找Java代码中Bug的项目,它是一个静态分析工具,它检查类或者jar文件,将字节码和一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以…

AndroidStudio中FindBugs的简单使用教程

对于代码质量的检查,一直是一个比较棘手的问题。虽然我们部门有关于java代码的各种规范,领导也多次强调对代码的评审。 但是在实际执行过程中,由于开发人员的水平参差不齐,在开发项目时还有各种其他因素,比如时间紧任…

maven项目集成findbugs详解

文章目录 0、概述一、接入方式二、如何使用方式一、在控制台中执行打包命令方式二、使用IntelliJ IDEA的maven工具(其他IDE用户忽略) 三、bug详情查看四、忽略指定的包、类、类中的方法步骤一、在pom.xml中 增加配置。步骤二、增加配置文件,用…

Findbugs maven 插件使用

Findbugs maven 插件使用 FindBugs™手册 http://findbugs.sourceforge.net/manual/index.html 0、概述 FindBugs是一个静态分析工具,它将**字节码(因此需要先编译)**与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,…

检查代码质量的插件Findbugs使用说明

一、简介 Findbugs是一个静态分析工具,它检查类或者jar文件,将字节码与一组缺陷模式进行对比以发现可能的问题。利用这个工具可以在不实际运行程序的情况下对软件进行分析。可以帮助改进代码质量。Findbugs提供了方便操作的可视化界面,同时也…

Findbugs的使用

转载请注明出处:http://blog.csdn.net/feibendexiaoma/article/details/72821781前言 Findbugs很多人都并不陌生,Eclipse中有插件可以帮助查找代码中隐藏的bug,IDEA中也有这款插件。这个插件可以帮助我们查找隐藏的bug,比较重要的功能就是查找…

android studio findbugs 过滤,Android Studio中使用FindBugs

1.什么是FindBugs 一句话简单理解就是:是一个工具,可以用它自动帮你找出代码中潜在的BUG。当然事实并不一定总是如此,也有很多它找不出来的地方。下面将直接介绍如何在Android Studio中的简单使用。有兴趣的童鞋可以自己去了解了解&#xff0…