MySQL Router是一款轻量级的中间件,提供了应用程序与后端数据库的透明路由,是mysql用来实现负载均衡和高可用功能。同时router也提供了使用fabric 高可用的方式。MySQL Router就是一个轻量级的中间件用来实现高可用和扩展性的功能。

MySQL Fabric最大的一个缺点是应用需要改造,用Fabric独有的Java或python驱动,并且目前只支持Java,Python php语言,即MySQL Fabric是在驱动层面实现的高可用和扩展功能。而MySQL Router是一个中间件,该中间的访问协议与MySQL一致,应用不需要做任何的修改。

ps:这里提供最新MySQL Router软件源免安装版,以及旧版的安装版,需要的朋友可下载试试!

MySQL 8.0正式版下载

MySQL shell正式版下载

MySQL Router(轻量级MySQL中间件) v8.0.17 官方免费版 64位

软件功能

MySQL Router 是集群路由器的一部分,是轻量级的中间件,提供透明的应用程序和后端MySQL服务器之间的路由。它可以用于各种各样的用例,例如通过高效地将数据库通信路由到适当的后端MySQL服务器,从而提供高可用性和可伸缩性。可插入的体系结构还允许开发人员扩展MySQL路由器来定制用例。更多细节关于MySQL InnoDB集群路由器的一部分

故障转移

通常,一个高度可用的MySQL设置由一个主主机和多个奴隶组成,这取决于应用程序处理故障转移,以防MySQL主机变得不可用。使用MySQL路由器,应用程序连接将透明地基于负载平衡策略路由,而不实现自定义应用程序代码。

负载平衡

MySQL Router  通过在一个服务器池中分配数据库连接,提供了额外的可伸缩性和性能。例如,如果您有一组复制的MySQL服务器,MySQL路由器可以以循环的方式将应用程序连接分发给它们。

插件式体系结构

MySQL Router  的可插入体系结构允许MySQL开发人员轻松地扩展产品的附加功能,并提供MySQL用户创建自己定制插件的能力,提供了无限的可能性。MySQL路由器目前有许多核心插件,包括:

连接路由插件,它基于连接的路由,这意味着它将MySQL数据包转发给后端服务器而不检查或修改它们,从而提供最大吞吐量。

元数据缓存插件,它提供了透明的客户端负载均衡、路由、和故障转移到群复制和InnoDB集群。

软件特色

上手快,很容易配置

较为稳定,性能中没有遇到什么问题

插件式的架构允许用户进行额外功能的扩展

缺点:

仅支持简单的负载均衡功能

高可用功能有待进一步测试

虽然支持Fabric元数据,但是不支持分库分表(不得不说是一个遗憾)

白名单,SQL统计功能,防火墙功能缺失

需要gcc 4.8以上版本支持,老系统编译比较麻烦些

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的相关文档。

下载地址

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。