数据库中间件学习笔记之Mycat入门

  1. Mycat是什么
  2. Mycat应用场景
  3. Mycat工作原理
  4. Mycat架构
  5. Mycat关键特性

1 Mycat是什么

  • 大数据库集群
  • 支持事务、ACID,可以替代MySQL的加强版数据库
  • 一个融合了内存缓存、NoSQL、HDFS大数据的新型SQL Server
  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品

2 Mycat应用场景

  • 单纯的读写分离(只需要简单配置,支持主从切换)
  • 分库分表,对于超过1000万数据行的表进行分片,最大支持1000亿的单表分片
  • 报表系统,借助于Mycat的分表能力,处理大规模报表的统计
  • 替代Hbase,分析大数据
  • 多租户应用,每个应用一个库,但应用程序只连接Mycat,从而不改造程序本身,实现多租户化
  • 作为海量数据实时查询的一种简单有效方案,比如100亿条频繁查询的记录需要在3秒内查询出来

除了基于主键的查询,还可能存在范围查询或其它属性查询

3 Mycat工作原理

工作原理:“拦截”,它拦截了用户发送过来的SQL语句,首先解析SQL语句,做一些特定的分析,如分片分析、路由分析、读写分离分析、缓存分析等;然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。

在这里插入图片描述

4 Mycat架构

在这里插入图片描述

5 Mycat关键特性

  • 支持MySQL、Oracle、DB2、SQL Server等DB常见SQL语法
  • 基于心跳的自动故障切换,支持读写分离,支持MySQL主从
  • 支持Galara for MySQL集群
  • 基于Nio实现,有限管理线程,解决高并发问题
  • 支持数据的多片自动路由与聚合,支持sum, count, max等常用的聚合函数,支持跨库分页
  • 支持多租户方案
  • 支持分布式事务(弱xa)
  • 支持XA分布式事务
  • 支持全局序列号,解决分布式下的主键生成问题
  • 分表规则丰富,插件化开发
  • 支持服务降级
  • 支持SQL黑名单、sql注入攻击拦截
  • 支持zookeeper协调主从切换、zk序列
  • 支持库内分表
  • 集群基于zk管理,在线升级,扩容
  • 支持prepare预编译指令
  • 支持非堆内存(Direct Memory)聚合计算
  • 支持密码加密
  • 支持IP白名单

参考文章

网易云课堂《Java高级开发工程师》

结语

本人所有博客仅用于学习记录,不做任何商业用途,如涉及侵权,还请联系删除,感谢阅读,欢迎留言,一起进步~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值