iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Amoeba中怎么实现MySQL负载均衡和故障转移
  • 903
分享到

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

2024-04-02 19:04:59 903人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关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负载均衡和故障转移就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: Amoeba中怎么实现MySQL负载均衡和故障转移

本文链接: https://www.lsjlt.com/news/58529.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Amoeba中怎么实现MySQL负载均衡和故障转移
    这篇文章将为大家详细讲解有关Amoeba中怎么实现MySQL负载均衡和故障转移,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 ...
    99+
    2024-04-02
  • mysql中怎么实现负载均衡
    这篇文章给大家介绍mysql中怎么实现负载均衡,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.环境: mysql 5ubuntu10.04 x86_64mdb1 ...
    99+
    2024-04-02
  • RAC_TNS故障转移负载均衡、SCAN IP、VIP、PUBLIC IP
    不能通过lsnrctl来看scan的监听,通过如下命令查看scan监听 [grid@node1 admin]$ srvctl config scan_listener SCAN Listener LISTE...
    99+
    2024-04-02
  • Nginx负载均衡方案中的故障转移与恢复机制
    引言:对于高负载网站来说,使用负载均衡是保证网站高可用性和提高性能的重要手段之一。Nginx作为一款功能强大的开源Web服务器,其负载均衡功能已得到广泛应用。在负载均衡中,如何实现故障转移和恢复机制,是一个需要重点考虑的问题。本文将介绍Ng...
    99+
    2023-10-21
    nginx 负载均衡 故障转移
  • Tomcat中怎么实现负载均衡
    在Tomcat中实现负载均衡可以通过以下几种方式: 使用Apache服务器作为反向代理:可以将多个Tomcat实例部署在不同的服...
    99+
    2024-03-07
    Tomcat
  • SpringBoot中怎么实现负载均衡
    在Spring Boot中,实现负载均衡通常是通过集成Spring Cloud Ribbon来实现的。Ribbon是一个负载均衡器和...
    99+
    2024-04-09
    SpringBoot
  • sqlserver中怎么实现负载均衡
    这篇文章将为大家详细讲解有关sqlserver中怎么实现负载均衡,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.所有的数据库客户都通过ICX访问数据库。当...
    99+
    2024-04-02
  • Flask中怎么实现负载均衡
    Flask本身并不直接提供负载均衡的功能,但可以通过其他方式来实现负载均衡。以下是一些常用的方法: 使用Nginx或其他反向代理服...
    99+
    2024-05-11
    Flask
  • springcloud负载均衡怎么实现
    Spring Cloud提供了多种方式来实现负载均衡,常用的有以下几种方式:1. Ribbon:Ribbon是Spring Clou...
    99+
    2023-09-02
    springcloud 负载均衡
  • php负载均衡怎么实现
    在PHP中实现负载均衡的方式有多种,以下是其中几种常见的方法:1. 使用负载均衡器:负载均衡器是一个专门的服务器,它将请求分发给多个...
    99+
    2023-08-15
    php
  • mac负载均衡怎么实现
    在mac上实现负载均衡可以通过以下几种方式:1. 使用NAT(Network Address Translation)路由器:将多个...
    99+
    2023-09-01
    负载均衡
  • dubbo负载均衡怎么实现
    Dubbo负载均衡可以通过以下方式实现:1. 随机负载均衡(Random Load Balance):每次从可用的服务提供者中随机选...
    99+
    2023-10-20
    dubbo
  • CDN怎么实现负载均衡
    CDN(内容分发网络)可以通过多种方式实现负载均衡,其中一些常见的方法包括: DNS轮询:CDN服务提供商可以利用DNS轮询来分...
    99+
    2024-04-24
    CDN
  • nginx怎么实现负载均衡
    要实现负载均衡,可以通过Nginx的反向代理和负载均衡模块来完成。以下是一种常见的配置方法:1. 安装Nginx:首先需要安装Ngi...
    99+
    2023-09-02
    nginx 负载均衡
  • cdn负载均衡怎么实现
    cdn负载均衡的实现过程:采用专业负载均衡设备,当用户访问yisu.com时,首先要进行DNS解析,查出yisu.comd的IP地址,然后用户与该IP地址建立TCP连接访问网站内容,DNS流量分配方式工作在DNS解析过程中,通过在域yisu...
    99+
    2024-04-02
  • dubbo怎么实现负载均衡
    Dubbo实现负载均衡主要有以下几种方式: 默认的负载均衡策略:Dubbo内置了一些默认的负载均衡策略,例如随机、轮询、一致性哈...
    99+
    2024-04-03
    dubbo
  • Teradata怎么实现负载均衡
    在Teradata中,负载均衡可以通过以下几种方式实现: 使用Teradata负载模块(TASM):TASM是Teradata的...
    99+
    2024-04-09
    Teradata
  • socket怎么实现负载均衡
    Socket负载均衡是通过将网络流量分发到多个服务器来实现的。以下是一种基于Socket的负载均衡实现方法:1. 设置一个负载均衡器...
    99+
    2023-09-07
    负载均衡 socket
  • nacos怎么实现负载均衡
    Nacos 可以通过以下几种方式实现负载均衡:1. 服务注册与发现:Nacos 可以作为服务注册中心,将服务实例注册到 Nacos ...
    99+
    2023-08-26
    nacos
  • springcloud怎么实现负载均衡
    Spring Cloud中实现负载均衡,可以使用Ribbon和Feign两种方式。1. Ribbon负载均衡:Ribbon是一个客户...
    99+
    2023-08-26
    springcloud
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作