MySQL Router Windows(轻量级MySQL中间件)

MySQL Router Windows(轻量级MySQL中间件)

版本:v2.0.4 官方版大小:3.1M

类别:数据库类系统:WinAll, WinXP, Win7

立即下载
  • MySQL Router Windows(轻量级MySQL中间件) v2.0.4 官方版0
  • MySQL Router Windows(轻量级MySQL中间件) v2.0.4 官方版1

mysql Router是一款非常重要的mysql轻量级MySQL中间件,相当于前端与后端的透明路由,能帮助开发人员实现读写分离,并且访问协议与MySQL,使用起来非常方便。感兴趣的朋友欢迎前来IT猫扑下载体验吧!

MySQL Router软件介绍

MySQL Router是一个轻量级的中间件,提供了应用程序与后端数据库的透明路由,是mysql用来实现负载均衡和高可用功能。同时router也提供了使用fabric 高可用的方式。MySQL Router就是一个轻量级的中间件用来实现高可用和扩展性的功能。MySQL Fabric最大的一个缺点是应用需要改造,用Fabric独有的javapython驱动,并且目前只支持Java,Python php语言,即MySQL Fabric是在驱动层面实现的高可用和扩展功能。而MySQL Router是一个中间件,该中间的访问协议与MySQL一致,应用不需要做任何的修改。

MySQL Router功能介绍

MySQL Router是mysql官方推出的一个轻量级MySQL中间件是处于应用client和dbserver之间的轻量级代理程序,它能检测,分析和转发查询到后端数据库实例,并把结果返回给client。是mysql-proxy的一个替代品.但是和mysql-proxy有区别。mysqlroute使用了两个端口进行读写分离

MySQL Router接受前端应用程序请求后,根据不同的端口来区分读写,把连接读写端口的所有写和查询发往主库,把连接只读端口的查询以轮询方式发往多个从库,从而实现读写分离的目的。读写返回的结果会交给MySQL Router,由MySQL Router返回给客户端的应用程序。 

我理解的是mysql-proxy在使用的时候与连接单台数据库操作一样,而mysql route则是把多台主机的读写集中在一起,进行读写分离,在使用的时候还是需要程序进行改动。

测试体验

MySQL Router之前官方的中间件是MySQL Proxy,这么多年一直是alpha版本,堪称业界奇迹。不过随着MySQL Router的发布,官网其实已经无法直接下载MySQL Proxy了。但inside君还是决定对MySQL Router和MySQL Proxy做一个简单的性能测试。测试场景是全内存的SELECT操作,测试工具使用sysbench,测试环境是网易云主机。最终的测试结果如下图所示:

mysql route

测试使用16线程的select.lua脚本的测试,对比远程客户端直连MySQL,远程客户端连接MySQL Router,远程客户端连接到MySQL Proxy,后两者需要再进行一个转发才能连接到目的MySQL数据库,因此性能肯定会比直连MySQL方式要差。从结果看MySQL Router比直连MySQL性能要差15%,QPS平均值接近20000。但是MySQL Proxy的测试结果QPS仅5700,简直惨不忍睹。导致这样结果最重要的原因是MySQL Proxy采用使用lua脚本语言,测试过程中CPU负载高达290%(4核CPU)。MySQL Proxy测试过程中CPU的使用率在50%左右,表现较为平稳。

看来MySQL Router用来做负载均衡是一个不错的选择,特别是用来做高可用架构下的只读VIP,那么对比传统的LVS性能又会是怎样呢?接着Inside君又对比了MySQL Router和LVS的负载均衡性能测试对比,同样是SELECT全内存测试,但是并发数提升至128个线程。测试结果如下所示:

mysql route

可以发现在128个线程下单实例MySQL直连模式和MySQL Router中间件模式已经没有太大的区别,QPS都在26000左右。当采用两个MySQL实例实现只读操作的负载均衡时,可以发现MySQL Router的QPS在48000左右,而LVS模式在52000左右,性能提升8%,更为重要的是LVS转发服务器上基本没有什么负载。

MySQL Router配置文件

[DEFAULT]

logging_folder = /var/log/mysqlrouter

[logger]

level = INFO

[routing:failover]

bind_address = 10.166.224.50

bind_port = 7001

max_connections = 1024

mode = read-write

destinations = 10.166.224.33:3310,10.166.224.34:3310

[routing:balancing]

bind_address = 10.166.224.50

bind_port = 7002

connect_timeout = 3

max_connections = 1024

mode = read-only

destinations = 10.166.224.33:3310,10.166.224.34:3310

通过该配置文件启动MySQL Router会监听两个端口10.166.224.50:7001和10.166.224.50:7002。10.166.224.50:7001是一个高可用的端口(mode=read-write),通过7001的端口访问MySQL Router中间件会首先将请求发送到服务器10.166.224.33:3310,如果确定该服务器宕机,则会发送到服务器10.166.224.34:3310。10.166.224.50:7002是一个负载均衡的端口,每个都请求可以将通过roundrobin的方式发送到destiantions对应的MySQL服务器。通过MySQL Router用户可以快速实现一个简单的带有读写分离的高可用集群。MySQL Router甚至可以链接MySQL Fabric的元数据库,具体可查看MySQL Router的相关文档。

查看全部

更新时间:2017-06-10
厂商名称:
包名:
MD5:
权限须知点击查看
权限管理须知关闭
玩家评论 QQ群号:203046401
我要跟贴
    取消
    猜你喜欢
      同类推荐
      热门精品
      显示全部+最新应用