千家信息网

Amoeba中怎么实现MySQL负载均衡和故障转移

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章将为大家详细讲解有关Amoeba中怎么实现MySQL负载均衡和故障转移,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Amoeba(变形虫,读:
千家信息网最后更新 2025年01月20日Amoeba中怎么实现MySQL负载均衡和故障转移

这篇文章将为大家详细讲解有关Amoeba中怎么实现MySQL负载均衡和故障转移,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

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

1.3 安装Amoeba
Amoeba 框架是基于JDK1.5开发的,采用了JDK1.5的特性。支持Mysql 协议版本10(mysql 4.1以后的版本),因此,使用Amoeba需要安装JDK1.5或以上版本,MySQL需要4.1以上版本。
系统及环境版本:
Linux版本:Linux localhost.localdomain 2.6.9-67.ELsmp #1 SMP Fri Nov 16 12:48:03 EST 2007 i686 i686 i386 GNU/Linux
JDK版本:jdk-6u16-linux-i586-rpm.bin

1.到sun公司网站下载包jdk1.6.0_16-linux-i586.rpm
2.安装:rpm -ivh jdk1.6.0_16-linux-i586.rpm
3.安装后之后需要配置环境变量。
vi /etc/profile
JAVA_HOME=/usr/java/jdk1.6.0_16
JAVA_BIN=/usr/java/jdk1.6.0.16/bin
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
使之生效
source /etc/profile

注意,需要把jdk名字修改成您所下载的JDK当前版本。
下一步是必须的,不然它总是调用FC6自带的jdk1.4

创建链接
  #cd /usr/bin
  #ln -s -f /usr/local/jdk1.5.0_05/jre/bin/java
  #ln -s -f /usr/local/jdk1.5.0_05/bin/javac

查看java版本:java -version
vi Hello.java
再编一个java小程序:
public class Hello{
public static void main(String[] args){
System.out.println("hello"); }
}
>javac Hello.java
>java Hello
出现 Hello即表明成功

安装好JDK后,再运行amoeba for mysql。

1.到amoeba开发者博客下载最新版本amoeba-mysql-1.0.2-BETA
2.配置amoeba.xml和rule.xml文件,具体参考相关资料
3.切换到amoeba-mysql-1.0.2-BETA目录,输入
>./bin/amoeba
即可(后台运行)
1.4 配置Amoeba
Amoeba的配置文件是XML格式的,使用起来很方便。主要有4个文件:
 Amoeba.xml是主配置文件,配置所有数据源及Amoeba自身的参数。
 rule.xml,配置所有Query路由规则的信息:
 functionMap.xml,配置用于解析Query中的函数所对应的Java实现类。
 nullFunctionMap.xml,配置路由规则中需要使用到的特定函数的实现类。

详细的配置说明请查看官方文档。

1.5 测试Amoeba对性能的影响
Amoeba需要分析MySQL协议数据包,因此在性能上必定会有折损。以下针对Amoeba的性能折损情况做个测试,测试方法是对单机直接访问与通过Amoeba对单机访问做个对比。
Amoeba只配置一台server,如Router部分配置如下



1500
master1


master1
master1

true


直接访问:
sysbench --num-threads=20 --max-requests=10000
--test=oltp --oltp-read-only=on --db-ps-mode=disable --oltp-skip-trx
--mysql-table-engine=innodb --oltp-table-size=100000
--mysql-host=192.168.100.2 -mysql-port=3306 --mysql-db=configdb run

OLTP test statistics:
queries performed:
read: 140000
write: 0
other: 0
total: 140000
transactions: 10000 (751.32 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 140000 (10518.52 per sec.)
other operations: 0 (0.00 per sec.)

Test execution summary:
total time: 13.3099s
total number of events: 10000
total time taken by event execution: 265.8874
per-request statistics:
min: 4.61ms
avg: 26.59ms
max: 80.70ms
approx. 95 percentile: 45.12ms

Threads fairness:
events (avg/stddev): 500.0000/7.78
execution time (avg/stddev): 13.2944/0.01



sysbench --num-threads=20 --max-requests=10000
--test=oltp --oltp-read-only=on --db-ps-mode=disable --oltp-skip-trx
--mysql-table-engine=innodb --oltp-table-size=100000
--mysql-host=192.168.100.2 -mysql-port=8066 --mysql-db=configdb run

OLTP test statistics:
queries performed:
read: 140000
write: 0
other: 0
total: 140000
transactions: 10000 (303.17 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 140000 (4244.42 per sec.)
other operations: 0 (0.00 per sec.)

Test execution summary:
total time: 32.9845s
total number of events: 10000
total time taken by event execution: 658.9933
per-request statistics:
min: 6.59ms
avg: 65.90ms
max: 10229.09ms
approx. 95 percentile: 109.86ms

Threads fairness:
events (avg/stddev): 500.0000/66.18
execution time (avg/stddev): 32.9497/0.01

从测试结果来看,Amoeba对性能的折损60%左右。如果再加上rule和functionMap的配置,我相信性能折损会更高。不过Amoeba对机器的性能要求很高,如果把Amoeba独立部署在一台性能较强的机器上,相信会有很大提升,另外,我们也可以同时使用多台Amoeba,用LVS来实现Amoeba自身的负载均衡和故障转换。

关于Amoeba中怎么实现MySQL负载均衡和故障转移就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

配置 版本 数据 性能 均衡 数据库 文件 规则 测试 故障 路由 开发 内容 函数 单机 多台 客户 文章 更多 机器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 阵列服务器能设置还原点 幻塔不同服务器能添加好友吗 网络安全法第68条规定 网络安全大赛ctf俱乐部 梦幻西游服务器没有角色如何买号 tc语言如何访问数据库 蓝多多数据库原理实验三 春节前公安通信网络安全检查 2018首都机场网络安全 天津私人服务器托管云服务器 西门子数据库导入和导出 缓存域名服务器 项目管理规范软件开发 浪潮品牌服务器联系方式 网络安全论文综述 家里电脑如何设置成服务器 测试服务器连接时间失败 永恒之塔单机数据库连接 网络技术模拟软件教学 苹果如何设置收件服务器 去向助手window服务器 济南数字化城管软件开发电话 网络安全手抄报大全写什么字 网络技术应用第一章知识点 通用视频服务器 天津私人服务器托管云服务器 税务系统网络安全宣传月 企业网络安全如何设计折页 qt实现自带数据库 谷歌服务器口令
0