分布式存储系统数据库中间件-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. @HostListener 可接收的事件列表
  2. python带我起飞 豆瓣评分_你听过后觉得爽到飞起的电音是哪一首?
  3. Python 学习笔记 (8)—— sys模块
  4. 如何去调试前端JS代码?以Chrome谷歌浏览器为例
  5. Python数据结构学习笔记——链表:无序链表和有序链表
  6. html5结构与表现分离原则,网页简单布局之结构与表现原则分享
  7. oracle频,Oracle动作频频 Java或浴火重生
  8. 借百度数据,建立你自己的程序
  9. CentOS6.5 安装python
  10. golang编译之vendor机制
  11. 黑板课爬虫闯关之关卡二
  12. 最近win7更新后出现第二次打开IDE(delphi2007)的时候提示无法打开EditorLineEnds.ttr这个文件...
  13. centerOS7开启网络服务
  14. 思科路由器配置命令(三)
  15. 磨金石教育插画干货分享|日本插画为什么独树一帜,那么受欢迎
  16. PAT题目详解-----愿天下有情人都是失散多年的兄妹
  17. windows计算机锁屏的快捷键是什么,电脑锁屏快捷键是什么
  18. 【_ 記 】发送邮件功能和MimeMessageHelper 对象下的To Cc Bcc(发送,抄送,密送)
  19. 字节一面:“为什么网络要分层?每一层的职责、包含哪些协议?”
  20. 这些老系统代码,是猪写的么?

热门文章

  1. 脚本监控windows的cpu 内存 磁盘 使用率
  2. Nginx gzip压缩功能及参数详解
  3. 静态代码块是什么?有什么用?
  4. 服务器数据丢失了如何处理?
  5. wannafly挑战赛4C-水题思维-割草机
  6. 佛山日电服务器维修,11月3日在线维护公告
  7. 3DMAX家装实例培训
  8. Spring MVC数据转换、格式化、校验、文件上传和下载
  9. 更新最新版显卡驱动后游戏更卡顿了怎么办
  10. 游戏玩家的心理分析,让游戏更好的吸引玩家和抓住玩家。