分布式存储系统数据库中间件-Mycat官方文档网站: http://mycat.org.cn/
Mycat基本上定义了一个为企业APP应用程序开发的大型数据库群集,它是完全开放源代码的
支持替代事务、ACID和MySQL的扩展版数据库
一种企业数据库,可以将其视为MySQL集群而不是昂贵的Oracle集群
融合了内存缓存技术、NoSQL技术和HDFS大数据的新型SQL Server
传统数据库与新型分布式数据仓库相结合的新一代企业数据库产品
新的数据库中间件产品
典型的APP应用场景是简单的读写隔离,本身支持读写分离,主从切换分库表,对超过1000万张表进行分片,支持高达1000亿的单表分片多租户APP,APP机箱APP应用只需连接到Mycat,不改造程序本身,实现多租户化报表系统,借助Mycat的制表能力,处理大规模报表的统计替代Hbase分析大数据是海量数据实时查询的一部分例如100亿个频繁查询的记录需要在3秒以内得出结果,除了基于主键的查询之外,还可能存在范围查询或其他属性查询,此时Mycat也许能够选择最简单有效的数据库中间件的基本结构图
中间件介于数据库和APP间,是一种进行数据处理和交互的中间服务,它有效地管理数据的底层交互,只需要将APP集中在业务处理上,底层数据由中间件处理,整个系统的稳定性和可扩展性
MySQL读写分离方式和Mycat存取标准读写分离方式是主从模式,一个主节点负责写入数据,多个从节点负责读取数据,通常一个主节点对应三个从节点写入数据
Mycat不负责mysql的数据同步问题,只负责sql读写分离资源的分离和管理
要访问mysql主从配置,请在mysql中执行以下两种配置
Mysql高可用性和集群方式及Mycat访问处理
对于要求非实时的APP应用,可以使用多台低配置的PC服务器来增加Slave的数量,并将读取压力分配给Slave,以解决数据库读取性能瓶颈。 许多中小型站点都通过这种方式解决数据库压力
MySQL Cluster的使用很常见。 主要原因是配置管理负责,运输困难,存在安全问题
heartbeat是linux-HA工程的组件,核心是心跳检测和资源交接两个组件,如果在指定时间内没有收到来自对方的消息,则会被视为失败。 这需要启动资源交接模块来交接对方主机上运行的资源服务
PRBD是一个开源群集软件,通过网络实现设备的数据镜像同步,可自动在网络中的两台不同服务器上进行磁盘同步。 binlog日志同步是底层磁盘同步,理论上是与许多文件系统的高可用性配置
Lvs是在linux平台上实现简单负载均衡的虚拟服务器集群系统,keepalived主要用于主机和备件故障转移,是一种适用范围广的负载均衡和高可用性方案,常用于Web系统
Mycat的高可用性官方推荐采用Haproxt keepalived方式功能稳定性也很好
实现整个Mycat体系结构
Mycat网络IO架构在实现Mycat的同时实现了NIO和AIO,系统参数可以选择使用AIO还是NIO
核心包括四个处理时间:客户端连接服务器端事件、服务器端接受客户端连接事件、读取事件和写入事件
与AIO的简单架构相比,nIO APP应用方案更为复杂,在高性能的io框架中适用于NIO
Mycat最佳实践
该方案基本包含了Mycat能够满意实现的所有实现方案