开源数据库中间件- MyCat 学习笔记

1、简介

       MyCat 曾是阿里开源产品Cobar,Cobar核心功能和优势是 MySQL 数据库分片。Mycat 是基于 cobar 演变而来,对 cobar 的代码进行了彻底的重构,使用 NIO 重构了网络模块,并且优化了 Buffer 内核,增强了聚合,Join 等基本特性,同时兼容绝大多数数据库成为通用的数据库中间件。MyCAT是一个新颖的数据库中间件产品支持mysql集群,或者mariadb cluster,提供高可用性数据分片集群。你可以像使用mysql一样使用mycat。对于开发人员来说根本感觉不到mycat的存在。

2、架构

3、应用场景

      解决海量数据存储方案

4、核心概念- 分片

      通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。 数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。

(1)垂直(纵向)切分

一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切分可以称之为数据的垂直(纵向)切分。

(2)水平(横向)切分

       另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数据的水平(横向)切分。

5、核心概念- 分片规则

(1)按主键范围分片 rang-long

默认配置如下:

# range start-end ,data node index
# K=1000,M=10000.
0-500M=0
500M-1000M=1
1000M-1500M=2

(2)一致性哈希murmur

将制定的主键,均匀的分布在各个分片中。

6、与数据库配合完成读写分离

MySQL负责主从复制;

MyCat负责读写自动切换

猜你喜欢

转载自blog.csdn.net/py_tamir/article/details/81611731