Mycat开源分布式数据库中间件介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Mycat分片方案
范围类分片规则 CATALOG
1. 范围约定 目录 2. 目录 按日期(天)分片 3. 按单月小时拆分 4. 自然月分片
设计目标
平滑移植
大数据
CATALOG目录 目录
兼容MySQL,MYSQL项目很容易移 植到MyCAT上 多种分片算法,100亿大表,秒级并 行查询 透明的读写访问机制,多数据源
应用透明 高可用 高性能
内建数据库集群故障切换机制
支持MySQL主从集群、 Galera Cluster多主同步集群
设计目标
Mycat开源分布式数据库中间件介绍
目目录录
CATALOG目录 目录
第一部分:Mycat • 介绍 • 设计目标
• 应用场景
• 方案对比 • 技术架构
第二部分:集群及规划
目Mycat介绍录
一个彻底开源的,面向企业应用开发的大数据库集群 CATALOG 目录 ACID、可以替代MySQL的加强版数据库 支持事务、 目录 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 一个新颖的数据库中间件产品
集群能力
企业级特性
Oracle有很多企业级特性以及 MySQL缺乏很多高级的企业级特性,因此关键 完备的工具等,满足苛刻要求 业务领域还无法跟上Oracle,但在大多数业务 的关键业务领域 领域,已经满足需求,特别是互联网领域 Oracle大规模使用下的成本比 较高,包括高端硬件的支出和 运维费用 MySQL的使用费用基本为零,而硬件方面的成 本也相对低很多
CATALOG目录 目录
单纯的读写分离
单纯的读写分离,此时配置 最为简单,支持读写分离, 主从切换
分表分库
分表分库,对于超过1000万的表进行 分片,最大支持1000亿的单表分片
多租户应用
多租户应用,每个应用一个库,但应用 程序只连接MYCAT,从而不改造程序本 身,实现多租户化
海量数据实时查询
作为海量数据实时查询的一种简单有效方案,比 如100亿条频繁查询的记录需要在3秒内查询出来 结果,除了基于主键的查询,还可能存在范围查 询或其他属性查询,此时Mycat可能是最简单有 效的选择
CATALOG目录 单表规模 上亿单表基本没有压力 目录
复杂SQL的支持 程度
复杂SQL的支持程度很好,通 复杂SQL支持能力低,一些复杂的SQL可能导 常能自动实现高性能的优化查 致MySQL负载过高,响应变慢,此问题只能通 询 过开发的约束与DBA的调优配合解决,即使如 此,仍然离Oracle的差距很大 Oracle RAC集群能力强大, 可靠性高,但难以扩展到几十 个节点 MySQL集群能力是弱点,但业界存在多种可选 方案,Mycat则能很好的综合使用这些方案, 并且可以水平扩展集群到几十个节点以上,在 一定程度上减少了与Oracle RAC的差距
2013年 MYCAT 1.0诞生
2014年MYCAT首次在上海的《中华架构师》大会上对外宣讲,引发 围观,随后越来越多的项目采用了MYCAT。 截至2015年10月,MYCAT官方QQ群已经超过5000人,大多数为资深 IT工程师、架构师、DBA、以及一些CXO和高端猎头,成为国内最有 影响力的高端IT专业群.
每一个应用都可以设置最大2000的连接池
App 1 db1 db2 db3 MySQL Instance based Connection Pool 2000连接 MySQL Server
App 2
Mycat
App 3
db4 Mycat 基于MySQL实例而非database的连接池复用机制, 可以让每个应用最大程度共享一个MySQL实例的所有连接 池,让数据库的并发访问能力大大提升
成本问题
Mycat分片方案
解决的问题?: CATALOG目录 单库单节点数据过大带来的性能及稳定性 目录
切分后带来问题: -引入分布式事务的问题。 -跨节点Join 的问题。 -跨节点合并排序分页问题。 -数据热点问题
所以: -尽量不切分,架构是进化而来,不是一蹴而就。 -最大可能的找到最合适的切分维度。 -由于数据库中间件对数据Join 实现的优劣难以把握,而且 实现高性能难度极大,业务读取 -尽量少使用多表Join -尽量通过数据冗余,分组避免数据垮库多表join。 -尽量避免分布式事务。 -单表切分数据1000万以内。
CATALOG 三: 100 亿大表水平分片,集群并行计算 目录 目录
Client
dn1
MySQL 1
dn2
MySQL 2
Mycat
大表水平分片 分布式并行计算
dn3
dn4
… …
MySQL 3
MySQL ….
集群横向扩展
Mycat典型应用场景
CATALOG目录 四:数据库路由器:大大提升数据库服务能力 目录
Mycat典型应用场景
CATALOG 一: 高可用性与 MySQL 读写分离 目录 目录
Inset SQL
Program
MySQL Master
主从同步
Mycat
Select SQL MySQL Slave MySQL Slave
自动读 写分离 自动主 从切换
Mycat典型应用场景
CATALOG目录 二:业务数据分级存储保障 目录
多主同时写入,高可靠性,适合系统中的关键表 Client Galera cluster
帐务表、订单表等
用户表、字典表、常规数据
主从故障切换,可能有数据丢失的问题
Mysql Master/Slave
Mycat
One Schema 日志类的数据
存储大量一次性非业务数据 NoSQL
一个逻辑库
Myc应用场景
CATALOG目录 五:数据库路由器:异构多种数据源 目录
MySQL Server Tcp nio MySQL Protocal & JDBC Oracle
Client
Mycat
jdbc SQL Server
Postgresql
Mycat方案对比 特性 Oracle Mycat+MySQL MySQL单表千万级以上,容易出现各种性能问 题,用MyCat分片技术以后,通过增加X86硬 件,基本可以达到单表1-100亿规模
相关文档
最新文档