300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 分布式存储系统数据库中间件-Mycat

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

时间:2021-09-19 16:48:03

相关推荐

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

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

官方文档网站:/

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能满足和实现的全部实现方案

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。