MySQL中间件-MYCAT

MyCAT

说明

官网:http://www.mycat.io/

同类产品:

ProxySQL,MySQL Router,MariaDB MaxScale

基本概念

数据库切分

**垂直切分:**将不同的表(或Schema)切分到不同中的数据库(或主机)上---分库 **水平切分:**将用一个表根据逻辑关系切分到不同中的数据库(或主机)上---分表

应用场景
  1. 单纯的读写分离
  2. 分库分表,对1000万-1000亿行数据的单表进行分片
  3. 多租用应用,每个应用连接一个库,应用连接mycat,不改造程序代码,实现多租户
  4. 报表系统,借助于Mycat的分表能力,处理大规模报表的统计
  5. 替代 Hbase,分析大数据
  6. 作为海量数据实时查询的一种简单有效方案,比如 100 亿条频繁查询的记录需要在 3 秒内查询出来结果, 除了基于主键的查询,还可能存在范围查询或其他属性查询,此时 Mycat 可能是最简单有效的选择

**注:**摘自《Mycat权威指南》,Mycat官网有下载链接

亮点

  1. 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL、巨杉等DB
  2. 高可用与集群方案较多
  3. 强大的分片支持
  4. 支持zookeeper协调主从切换、zk序列、配置zk化
  5. 监控方案:命令行+Web界面Mysql-eye/Mycat-mini-monitor

Mycat读写分离实现

MySQL主从复制

搭建过程

略...

常用命令
-- 查看主服务状态
SHOW MASTER STATUS;
或者
SHOW MASTER STATUS\G

-- 在主服务器上查看从服务主机
show slave hosts;

-- 查看从服务状态
show slave status\G

-- 开始/停止复制(从服务器上执行)
START/STOP SLAVE;
关于主从复制延迟
监控方案
  1. shell脚本监控(通过show slave status\G)
  2. 监控工具:Percona监控套件中的pt-heartbeat(它会创建heartbeat表,此表记录监控数据)
避免方案
  1. 新版本可使用多线程主从复制,show global variables like 'slave_parallel_workers';#默认是0,即单线程

Mycat配置文件

schema.xml---配置数据库

20190430174205.png

server.xml---配置Mycat账户
<user name="root" defaultAccount="true">
    <property name="password">123456</property>
    <property name="schemas">testdb</property>
</user>

schemas对应schema.xml中schemas,可配置多个,用逗号分隔

注意:

  1. 默认端口: 连接8066 管理9066

使用JMeter压测读写分离-简单测试

压测说明

主机: 虚拟机2核4G 压测对比: "单MySQL"VS“主从MySQL两台+读写分离” 测试量: 10万写入+20万分页查询(count+limit)+20万通过主键查询 **线程数:**100 **数据库参数:**默认

JMeter配置截图

20190430164651

20190430164716

20190430164727

20190430164809

测试结果

单MySQL 20190430181645

主从MySQL两台+读写分离 20190430172534

读写分离双节点的居然只比单节点快了23秒, 于是又加了一台从数据库

主1台+从2台+读写分离 20190505120008

这回时间上缩短了21分钟,效果还不错

其它

用同样的测试方法测试postgreSQL,最终以失败告终,尴尬,不知道是否和测试方法有关 20190506113400

转载于:https://my.oschina.net/u/4140718/blog/3055399

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值