MySQL Router 测试使用1. 特性
MySQL Router 并没有包括一些特别新的特性, 总体上看中规中矩, 不过 first-available 和插件两个特性挺有意思, 后续会进行讲解, 特性包括:
对连接请求进行路由;和 Fabric 配套使用, 方便管理;
插件特性, 需要的功能以插件形式提供;2. 配置
MySQL Router 在启动的时候会读取默认的配置文件, 用户可以通过 -DROUTER_CONFIGDIR= 或编辑 cmake/settings.cmake 来自定义配置文件, 默认情况下从以下路径读取:[root@cz-centos7 bin]# ./mysqlrouter --help
Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Start MySQL Router.Configuration read from the following files in the given order (enclosed
in parentheses means not available for reading):(./mysqlrouter.ini)(/root/.mysqlrouter.ini)Usage: mysqlrouter [-v|--version] [-h|--help][-c|--config=][-a|--extra-config=]
Options:-v, --versionDisplay version information and exit.-h, --helpDisplay this help and exit.-c , --config Only read configuration from given file.-a , --extra-config Read this file after configuration files are read from eitherdefault locations or from files specified by the --configoption.
值得一提的是 -c 选项指定的配置会被最先加载, -a 指定的配置后续加载.2.1 配置文件设置2.1.1 通用选项通用选项可以放到 [DEFAULT] 块中, 通常包括一些目录路径配置:logging_folder: MySQL Router 运行时产生 log 的目录路径, log 文件默认为 mysqlrouter.log, 不设置路径默认输出到标准输出(STDOUT);
plugin_folder: MySQL Router 的插件路径, 该路径必须和 MySQL Router 的安装目录对应上, 如果是自定义的安装路径, 该选项必须要指定, 默认为 /usr/local/lib/mysqlrouter;
runtime_folder: MySQL Router 运行时候的目录路径, 默认为 /usr/local ;
config_folder: MySQL Router 配置文件的路径, 默认为 /usr/loca/etc/mysqlrouter
举例如下:[DEFAULT]
logging_folder = /var/log/mysqlrouter
plugin_folder = /usr/local/mysqlrouter/lib
runtime_folder = /usr/local/mysqlrouter2.1.2 路由选项以下选项可以放到路由策略 [routing:] 块中:bind_address: 工具启动的时候绑定的网卡地址, 默认为 127.0.0.1, 如果没有指定端口, bind_port 选项则必须指定;
bind_port: 工具启动监听的端口, 如果 bind_address 以 ip:port 形式指定, 则 bind_port 不需要再指定;
connect_timeout: 工具连接后端 MySQL Server 的超时时间, 默认为 1s, 有效的值为 1 ~ 65535;
destinations: 以分号形式提供后端需要连接的 MySQL Server 列表;
mode: 该选项必须要指定, 不同模式对应不同的调度策略, 目前支持两种方式: read-write 和 read-only;
max_connections: 连接到 MySQL Router 的最大连接数, 类似 MySQL Server 中的 max_connections 选项;
在 mode 选项中, 我们可以选用 read-write 和 read-only 模式:
read-write: 通常用于路由到后端的 MySQL master, 在 read-write 模式中, 所有的流量都转发到 destinations 指定的列表的首个地址, 比如 “127.0.0.1:3301, 127.0.0.1:3302″, 则所有的流量都转发到 3301 端口, 如果 3301 端口失败, 则尝试连接 3302 端口, 如果列表中没有有效的MySQL Server, 路由请求会被中断丢弃; 这种方式被称作 “first-available”. 这种方式可以适用于一般的主从架构中, 比如指定列表 “master:3301, slave1:3301″, 在 master 出现故障的时候, MySQL Router 会自己连接 slave1, 不过中间的切换过程需要我们做很多的操作来满足这种工作模式.read-only: 路由请求到后端的 MySQL slave, 从这点看 read-only 模式下, destitions 指定的 MySQL Server 列表应该都是 slave, 不同于 read-write 都指定的是 master. 在 read-only 模式中, 使用轮询( round-robin )方式转发请求到后端的 Server. 如果一个 Server 不可用,则尝试下一个 Server, 这意味着不会丢失一个请求, 如果服务都不可用, 则丢弃请求.这种模式下如果应用读写分离, read-only 会是比较好的选择.从上面两点看, MySQL Router 的服务模式和我们熟知的 cobar, atlas, kingshard 等大为不同, master, slave 都需要单独配置, 这点在扩展性方面比较差, 估计很多人不会喜欢该模式, 不过话说回来, 如果能够和 Fabric 很好的配合使用的话, 可能会吸引一部分用户使用.2.1.3 日志日志选择可以放到 [logger] 块中, 可以用来指定日志级别, 默认为 INFO, 输出则依赖 logging_folder 的选项:
[logger]
level = DEBUG2.2 配置举例我们以读扩展的配置举例说明(read-write 模式估计不受欢迎 ~~, 可以配置多个 routing:, MySQL Router 可以启动多个routing ):[DEFAULT]
logging_folder = /usr/local/mysqlrouter/log
plugin_folder = /usr/local/mysqlrouter/lib/mysqlrouter
runtime_folder = /usr/local/mysqlrouter[logger]
level = DEBUG[routing:readtest]
bind_address = 0.0.0.0:7001
mode = read-only
destinations = 10.0.21.7:3301,10.0.21.17:3301  #不能有空格3 连接测试启动./bin/mysqlrouter -c /usr/local/mysqlrouter/etc/mysqlrouter.ini
先来看看最简单的测试:[root@cz-centos7 ~]# time for x in `seq 1 5`; do /opt/Percona-Server-5.5.33-rel31.1-566.Linux.x86_64/bin/mysql -h 10.0.21.90 -P 7001 -uroot percona -Bse "show global variables like 'hostname'; show tables"; done

配置举例[DEFAULT]
logging_folder = /usr/local/mysqlrouter/log
plugin_folder = /usr/local/mysqlrouter/lib/mysqlrouter
runtime_folder = /usr/local/mysqlrouter[logger]
level = DEBUG[routing:readtest]
bind_address = 0.0.0.0:7001
mode = read-write
destinations = 10.0.21.17:3301 #多个地址用逗号分隔, 中间不能有空格
我们这里只设置一个 master, 然后再对比下直连 MySQL 和连接 MySQL Router 的测试结果.直连 master:[root@cz-centos7 ~]# /opt/mysql/bin/mysqlslap -h 10.0.21.17 -P 3301 -uroot -a --auto-generate-sql-execute-number=10000 --auto-generate-sql-load-type=read --auto-generate-sql-secondary-indexes=3 --auto-generate-sql-unique-query-number=1 --auto-generate-sql-write-number=1000 -c 10
BenchmarkAverage number of seconds to run all queries: 180.839 secondsMinimum number of seconds to run all queries: 180.839 secondsMaximum number of seconds to run all queries: 180.839 secondsNumber of clients running queries: 10Average number of queries per client: 10000
连接 MySQL Router:[root@cz-centos7 ~]# /opt/mysql/bin/mysqlslap -h 10.0.21.90 -P 7001 -uroot -a --auto-generate-sql-execute-number=10000 --auto-generate-sql-load-type=read --auto-generate-sql-secondary-indexes=3 --auto-generate-sql-unique-query-number=1 --auto-generate-sql-write-number=1000 -c 10
BenchmarkAverage number of seconds to run all queries: 433.598 secondsMinimum number of seconds to run all queries: 433.598 secondsMaximum number of seconds to run all queries: 433.598 secondsNumber of clients running queries: 10Average number of queries per client: 10000
从时间总是上看, 直连方式中10个线程执行 1w 次请求需要大约 181s 左右, 平均每个线程每秒执行5.5次, 连接 MySQL Router 则每个线程平均每秒执行2.3次, 多了一层转发性能消耗还是比较明显的. 这里只是简单的测试, destinations 中如果提供多个服务作为 read 扩展, 相信性能还是会有所提升的.总体上看, 应用程序本身支持读写分离的话, 分别指定两个 routing section(read-write 和 read-only) 会是很不错的选择, 当然比起 atlas, cobar 等, 应用程序的结构会稍显复杂, 扩展性不强.

转载于:https://www.cnblogs.com/zengkefu/p/5499706.html

MySQL Router 测试使用 转相关推荐

  1. mysql router测试_MySQL 主从复制配置 + MySQL Router 部署使用测试

    三.验证测试 1.读写分离测试 读写分离是通过在配置文件中配置的不同端口实现 由于MySQLrouter节点未安装mysql客户端程序,所以在mysqldb1节点测试 登录写节点:端口7001 mys ...

  2. oracle Router,Oracle官方轻量级中间件MySQL Router介绍与性能测试

    话说去年11月去参加OOW大会,听了一场关于MySQL Router的分享.因为我以为这货没这么快会GA,但是没想到的是在OOW大会前MySQL Router就同MySQL 5.7一起GA了.回来之后 ...

  3. Mysql Router 读写分离配置

    2019独角兽企业重金招聘Python工程师标准>>> 1.安装 rpm -ivh mysql-router-2.0.4-1.el6.x86_64.rpm 2.配置 cat > ...

  4. MySQL Router实现MySQL的读写分离

    1.简介 MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy. 既然MySQL Router是一个数据库的中间件,那么MySQL Rout ...

  5. mysql router 8.0.11_MySQL Router8

    MySQL Router8是一款轻量级的中间件,主要用来实现高可用和扩展性的功能,在中间的访问协议和MySQL一致,不需要做任何的修改,提供了使用fabric可用的方式,有需要的朋友可以来本站下载! ...

  6. mysql router docker_Docker 安装 Mysql 详解

    本文将以完整的安装 MySQL 为例将 镜像与 容器 操作完全串联起来 环境说明 系统为 CentOS 7.5 发行版,内核为 3.10 版本,Docker 为 1.13 版本 [root@local ...

  7. mysql router docker_MySQL Router 完全讲解

    MySQL Router 是一款轻量级 MySQL 中间件,提供应用与任意 MySQL 后端服务器的透明路由.同时插件式架构也方便开发者扩展其功能. 1. 安装 rpm -ivh mysql-rout ...

  8. mysql router 多台写入_Centos7部署MySQL-router实现读写分离及从库负载均衡

    简介 MySQL Router是处于应用client和dbserver之间的轻量级代理程序,它能检测,分析和转发查询到后端数据库实例,并把结果返回给client,是mysql-proxy的一个替代品 ...

  9. mysql-router设置,mysql router 中间件 配置

    mysql router 解决高可用,读写分离,负载均衡 1 首先配置好主从同步 2 下载mysql-router wget https://dev.mysql.com/get/Downloads/M ...

最新文章

  1. SaltStack 学习笔记 - 第四篇: SaltStack常用模块
  2. 网站故障排查常用命令
  3. python 笛卡尔积,排列,组合
  4. 下一代 Debian - \'Lenny\' 代码冻结
  5. 错误信息:Microsoft 分布式事务处理协调器(MS DTC)已取消此分布式事务
  6. boot spring 怎么执行hql_Intellij如何使用Spring Boot正确配置hql。现在我得到持久性QL查询已进行错误检查...
  7. go 链路追踪_Go技术日报(20200911)
  8. python输出24进制时间_python-如何在给定时间原点的情况下将日期时间从十进制转换为“%y-%m-%d%H:%M:%S”?...
  9. 2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述(4)—— 3D Surface decoding
  10. win11打开安全中心显示英文怎么办 windows11打开安全中心显示英文的解决方法
  11. 2020.3二级中选择题文件类型题目全套
  12. 配置codeblocks 的养眼colour theme ;鼠标颜色与型状配置,界面汉化,以及调试入门
  13. 调用 Windows 7 中英文混合朗读
  14. 分析器错误 分析器错误信息: 类型“Websystem.Global”不明确: 它可能来自程序集...的解决...
  15. 军用装备温湿度循环测试,温湿度环境可靠性实验室GJB150A
  16. springboot项目java生成kml文件
  17. 易福门流量计SA5000
  18. 【冷冻电镜入门】加州理工公开课课程笔记 Part 3: Image Formation
  19. 小白如何成长为一名黑客
  20. 用Python画出奥运五环图 (Python经典编程案例)

热门文章

  1. Matlab guide菜单+快捷菜单的使用
  2. mysql解压缩版配置_MySQL 5.6 for Windows 解压缩版配置安装
  3. 基于java Springboot+Vue+shiro前后端分离疫情防疫管理系统设计和实现2.0
  4. Mysql5换成Mysql8之后报错java.lang.ClassNotFoundException: com.mysql.jdbc.driver的问题解决
  5. oracle10g支持数据泵么,Oracle 10g使用数据泵(EXPDP和IMPDP)。
  6. 盲人如何学计算机编程,盲人程序员是如何编程的?
  7. 升级计算机方案,关于计算机升级方案
  8. html支持的脚本语言,能不能让日志内容在支持html语言的同时支持一下脚本语言,拜托!拜托!...
  9. 华师计算机基础在线作业秋,18秋华师《计算机基础》在线作业(20210408185935).pdf...
  10. python系统关键字_Python基础教程 - global关键字及全局变量的用法