副标题[/!--empirenews.page--]
【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》
Mysql route介绍
什么是mysql route
MySQL Router是处于应用client和dbserver之间的轻量级代理程序,它能检测,分析和转发查询到后端数据库实例,并把结果返回给client。是mysql-proxy的一个替代品。其架构图和功能如下。

(1)Router实现读写分离,程序不是直接连接数据库IP,而是固定连接到mysql router。MySQL Router对前端应用是透明的。应用程序把MySQL Router当作是普通的mysql实例,把查询发给MySQL Router,而MySQL Router会把查询结果返回给前端的应用程序。
(2)从数据库服务器故障,业务可以正常运行。由MySQL Router来进行自动下线不可用服务器。程序配置不需要任何修改。
(3)主数据库故障,由MySQL Router来决定主从自动切换,业务可以正常访问。程序配置不需要做任何修改。
读写分离原理
MySQL Router接受前端应用程序请求后,根据不同的端口来区分读写,把连接读写端口的所有查询发往主库,把连接只读端口的select查询以轮询方式发往多个从库,从而实现读写分离的目的。读写返回的结果会交给MySQL Router,由MySQL Router返回给客户端的应用程序。
Mysql router用途
MySQL Router的主要用途是读写分离,主主故障自动切换,负载均衡,连接池等。
Mysql router主主故障自动切换的坑
Mysql router主主故障切换功能经过测试没有问题,但是有一个比较大的坑需要注意,具体是什么坑和解决方法在文章末尾,因为你之前要是没用接触过mysql router估计以我的表达能力,说了你就晕了。
mysql router实验架构介绍
实验环境架构图如下:

安装部署mysql route
(1)下载地址:提供不同平台,二进制包和rpm包,选择合适安装方式即可,我这里使用二进制包安装
(2)解压安装
- [root@c7-node1 ~]# tar xf mysql-router-2.0.3-linux-glibc2.12-x86-64bit.tar.gz -C /usr/local/
- [root@c7-node1 ~]# cd /usr/local/
- [root@c7-node1 local]# ln -s mysql-router-2.0.3-linux-glibc2.12-x86-64bit/ mysql-router
- [root@c7-node1 local]# cd mysql-router
- [root@c7-node1 mysql-router]# ll
- total 0
- drwxr-xr-x 2 7161 wheel 24 Feb 23 2016 bin
- drwxr-xr-x 4 7161 wheel 36 Feb 23 2016 include
- drwxr-xr-x 3 7161 wheel 150 Feb 23 2016 lib
- drwxrwxr-x 2 7161 wheel 6 Feb 23 2016 run
- drwxr-xr-x 3 7161 wheel 16 Feb 23 2016 share
(3) 配置
1、创建配置文件目录,复制模版配置文件
- [root@c7-node1 mysql-router]# mkdir /etc/mysql-route/
- [root@c7-node1 mysql-router]# cp share/doc/mysqlrouter/sample_mysqlrouter.ini /etc/mysql-route/mysqlrouter.conf
2、配置文件设置,日志目录需要自己手动创建
- [root@node1 ~]# cat /etc/mysql-route/mysqlrouter.conf
- [DEFAULT]
- # 日志存放目录
- logging_folder = /data/log/mysql-route
- # 插件存放目录
- plugin_folder = /usr/local/mysql-router/lib/mysqlrouter
- # 配置文件存放目录
- config_folder = /etc/mysql-route
- # 运行目录
- runtime_folder = /var/run
- [logger]
- # 日志运行级别
- level = INFO
- # 主节点故障转移配置
- [routing:basic_failover]
- # 写节点地址
- bind_address=192.168.100.10
- # 写节点端口
- bind_port = 7001
- # 模式,读写
- mode = read-write
- # 主节点地址:默认情况下第一台主数据库为写主库,当第一台主数据库DOWN机后,第二台数据库被提升为主库
- destinations = 192.168.100.11:3306,192.168.100.12:3306
- # 从节点负载均衡配置
- [routing:balancing]
- # 绑定的IP地址
- bind_address=192.168.100.10
- # 监听的端口
- bind_port = 7002
- # 连接超时时间
- connect_timeout = 3
- # 最大连接数
- max_connections = 1024
- # 后端服务器地址
- destinations = 192.168.100.12:3306,192.168.100.13:3306
- # 模式:读还是写
- mode = read-only
- [keepalive]
- interval = 60
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|