分布式存储系统数据库中间件-Mycat

官方文档网站:http://mycat.org.cn/

Mycat基本定义

  • 一个彻底开源的,面向企业应用开发的大数据库集群

  • 支持事务、ACID、可以替代MySQL的加强版数据库

  • 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群

  • 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server

  • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品

  • 一个新颖的数据库中间件产品

常用应用场景

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

数据库中间件基本架构图

中间件是介于数据库和应用之间,进行数据处理和交互的中间服务,能有效的管理数据底层的交互处理,让应用只需要集中在业务处理上,底层的数据让中间件来处理,提高整个系统的稳定性和扩展性

MySQL读写分离方案及Mycat接入

标准的读写分离方案是主从模式,一个主节点负责数据写入,多个从节点负责数据读取,通常是1个主节点写入对应3个从节点读取数据

Mycat不负责mysql的数据同步问题,只负责sql读写分离资源的分开和管控

Mycat中执行以下两种配置即可接入mysql的主从配置

Mysql高可用与集群方案及Mycat接入处理

对实时性要求不高的应用可以采用多台低配置的PC server扩展Slave的数量,将读压力分配到Slave上,解决数据库的读性能瓶颈,很多中小型网站采用此方式解决数据库压力

MySQL Cluster使用不是很普遍,主要原因是配置管理负责,运维难度比较大并且存在安全问题

heartbeat是linux-HA工程的一个组件,核心包括两个:心跳检测和资源接管,指定时间内未收到对方发送的报文就认为是失败的,这是需要启动资源接管模块接管运行在对方主机上的资源服务

PRBD是通过网络来实现设备的数据镜像同步的开源Cluster软件,它自动完成网络中两个不同服务器上的磁盘同步,相对于binlog日志同步,它是底层的磁盘同步,理论上是和很多文件系统的高可用配置

Lvs是一个虚拟的服务器集群系统,可以实现linux平台下的简单负载均衡,keepalived主要用于主机和备机的故障转移,是一种适用面很广的负载均衡和高可用方案,常用于Web系统上

Mycat的高可用官方推荐是采用Haproxt+keepalived的方式功能稳定性也比较好

Mycat总体架构实现

Mycat网络IO架构与实现

Mycat同时实现了NIO和AIO,可以通过系统参数选择是使用AIO还是NIO

核心包含四个处理时间:客户端连接服务端事件、服务端接受客户端连接事件、读事件、写事件

相比于AIO简单的架构,NIO应用场景比较复杂,在高性能IO框架中都会应用到NIO

Mycat最佳实践

这种方案基本包含Mycat能满足和实现的全部实现方案

分布式存储系统数据库中间件-Mycat相关推荐

  1. docker二进制安装mysql_Docker搭建MySQL读写分离主从模式 分布式数据库中间件Mycat分库分表应用...

    一.MySQL读写分离主从模式 1. 下载镜像 docker pull mysql 当前最新版本:mysql Ver 8.0.19 for Linux on x86_64 (MySQL Communi ...

  2. 分布式数据库中间件 MyCat 安装及使用

    分布式数据库中间件 MyCat 安装及使用 关于 MyCat 的铺垫文章已经写了三篇了: MySQL 只能做小项目?松哥要说几句公道话! 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下! ...

  3. 开源分布式数据库中间件MyCat架构简介(一)——基于MyCat的分库分表,读写分离,水平切分和垂直切分实现原理

    目录 前言 开源分布式数据库中间件MyCat架构简介--MyCat源起 一.数据库切分概述:OLTP和OLAP 二.关系型数据库和NoSQL数据库 三.关系型数据库和NoSQL数据库的特点及优缺点 1 ...

  4. 开源分布式数据库中间件MyCat架构简介(二)——基于MyCat的分库分表,读写分离,水平切分和垂直切分实现原理

    目录 前言 基于MyCat的分库分表,读写分离,水平切分和垂直切分实现原理 一.关于Mycat 二.Mycat 实现原理 三.MyCat 应用场景 四.MyCat 未来展望 五.Mycat 中相关概念 ...

  5. 数据库中间件Mycat诞生记1

    数据库是黑盒还是白盒,分布式还是大集中,We donot care. 数据库实现机制就是与我无关,钱都花了我还得伺候你?胳膊拗不过大腿,现实就是数据库效率不高我们就把你大卸八块,碎碎平安啊!(什么? ...

  6. 分布式MySQL数据库中间件 mysqlda

    1. 概述 1.1. 数据分布式切分方式 分布式架构中最难解决的是数据分布式问题,大部分数据库中间件都以分库分表作为切分方式,好处是通用,但也存在以下问题: 扩容过程需要以切片为单位在库间移动数据.扩 ...

  7. docker安装mycat_分布式数据库中间件 MyCat 搞起来!

    关于 MyCat 的铺垫文章已经写了三篇了: MySQL 只能做小项目?松哥要说几句公道话! 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下! What?Tomcat 竟然也算中间件? ...

  8. 分布式数据库中间件Mycat百亿级数据存储(转)

    此文转自: https://www.jianshu.com/p/9f1347ef75dd 2013年阿里的Cobar在社区使用过程中发现存在一些比较严重的问题,如高并发下的假死,心跳连接的故障,只实现 ...

  9. 数据库中间件 MyCAT源码分析 —— XA分布式事务

    title: MyCAT 源码分析 -- XA分布式事务 date: 2017-07-15 tags: categories: MyCAT permalink: MyCAT/xa-distribute ...

最新文章

  1. 合作交流的好处_孩子都喜欢玩“过家家”,这种儿科游戏,对孩子来说好处多多...
  2. 自然语言处理 的 一些环境和包
  3. TCP协议、算法和原理
  4. mysql left join 空值_MYSQL Left Join如何选择NULL值?
  5. Vlan中Trunk接口配置
  6. FreeSql (二十二)Dto 映射查询
  7. C#核心概念--装箱和拆箱(什么是装箱和拆箱)
  8. 用python写名字
  9. Bootstrap 提示工具(Tooltip)弹出框
  10. 美国某超市销售数据分析
  11. 学习笔记——深蓝学院点云系列公开课05:3D物体检测的发展与未来
  12. 淘宝网店应该怎么样去做好宝贝SEO优化?
  13. 普通麦克风和多阵列麦克风的区别
  14. [附源码]java毕业设计中青年健康管理监测系统
  15. 2022金九银十最全的软件测试面试题,能不能找到合适工作就看它了
  16. 大扇区硬盘的出现与分析
  17. 计网实验:单臂路由实现VLAN之间的通信详解(Cisco Packet Tracer)
  18. css设置height无效,CSS中设置height:100%无效的解决方案
  19. 985中山大学珠海校区新成立人工智能学院和软件工程学院!
  20. android应用商店设计规范,商店应用图尺寸规则

热门文章

  1. 喜茶皇茶茶叶带您走上致富之路
  2. chrome上 flash上传插件加载失败的 解决方法
  3. ActiveMQ的官方中文文档
  4. Java网络爬虫讲解
  5. 安装WPS后office出现报错的情况
  6. 艾永亮:企业如何围绕用户需求打造超级产品
  7. 【内部网络扫描仪,网络探测框架】
  8. 【NetApp】hot spare盘数量的官方推荐
  9. 【电脑使用】送给即将迈入大学的电脑小白的一份电脑使用入场券
  10. propertyGrid