温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mysql router是什么

发布时间:2021-08-30 18:37:58 来源:亿速云 阅读:341 作者:chen 栏目:数据库

本篇内容主要讲解“mysql router是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql router是什么”吧!

  什么是MySQL Router?

  MySQL Router是一个介于应用层和DB层之间的开源的轻量级中间件,它能够将前端应用的请求分析转发给后端DB服务器处理,从而实现DB的负载均衡,可以说它是先前MySQL Proxy的替代品,我们可以在Github找到它的源码。类似的工具有360的Atlas、美团点评的DBProxy、MyCat等几种。

  MySQL Router架构

  使用这种架构,前端应用不用直接连接DB Server,而仅仅是连接到MySQL Router,能够很方便地实现数据库集群的扩展,接下来我们再来看看它的一些其他的主要功能。

  MySQL Router主要功能

  1、自动故障转移

  使用MySQL Router实现来读写分离,前端应用层不需要直连接底层DB,而是统一连接到MySQL Router。MySQL Router对前端应用层是透明的,我们不需要在代码层做任何处理。应用层会把MySQL Router一个正常的MySQL实例使用,底层DB Master挂了会自动使用Backup节点替代,十分方便。

  2、DB负载均衡

  MySQL中间件通过类似连接池的方式,将请求按照一定的规则分发给底层数据库,从而实现DB的读写分离、高可用。

  MySQL Router用于取代MySQL Proxy,建议MySQL Router与应用程序部署在一台机器。应用程序像访问MySQL一样访问MySQL Proxy,由MySQL Proxy将数据转发给后端的MySQL。支持各种操作系统。

  MySQL Router的工作模式

  read-write

  用于多主服务器,个人感觉也可用于主备,用于多主可以避免脑裂问题,但实际上多主只有一个为Active状态。并且MySQL的主从和多主复制恢复起来都比较麻烦,需要手工操作。相比之下MySQL Group Replication提供了更简单的集群自动维护方案。

  所有请求被发送到第一个服务器,只在第一个服务器宕机后才会使用后续的第二个服务器。

  不支持宕机服务器恢复检测

  以下两种情况下将无法使用

  从先宕机,然后恢复,主再宕机

  主先宕机,然后恢复,从再宕机

  [routing:example_strategy]

  bind_port = 7001

  destinations = master1.example.com,master2.example.com,master3.example.com

  mode = read-writ

  read-only

  用于路由从服务器集群。

  每个请求用轮询方式访问所有服务器。如果一个服务器宕机,会尝试使用下一个服务器。如果所有服务器宕机,路由将退出。重新可用的服务器会被按照原来的顺序重新加入到可用列表

  [routing:ro_route]

  bind_port = 7002

  destinations = slave1.example.com,slave2.example.com,slave3.example.com

  mode = read-only

  启动

  mysqlrouter --config=/path/to/file/my_router.ini

  需要将数据库连接池的maxStatements=0设置为0,否则当主机宕机后,连接池将无法在备机上找到对应的Statement而报错。

  性能

  远高于MySQL Proxy,相比较于直连MySQL性能损失很小。

到此,相信大家对“mysql router是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI