mycat使用(一)

笔者是在使用读写分离和分表分库的时候接触了mycat,百度找了一些推荐的中间件,最后选择了mycat,原因是使用人数较多,开源,一直在更新,问题查询较容易。

本文记录一些使用场景和概念:

应用场景:

1,单纯的读写分离,此时配置最为简单,支持读写分离,主从切换

2,分表分库,对于超过 1000 万的表进行分片,最大支持 1000 亿的单表分片

3,多租户应用,每个应用一个库,但应用程序只连接 Mycat,从而不改造程序本身,实现多租户化

4,报表系统,借助于 Mycat 的分表能力,处理大规模报表的统计

5,替代 Hbase,分析大数据

6,作为海量数据实时查询的一种简单有效方案,比如 100 亿条频繁查询的记录需要在 3 秒内查询出来结果,除了基于主键的查询,还可能存在范围查询或其他属性查询,此时 Mycat 可能是最简单有效的选择

基本概念:

1,数据库中间件:就是介于数据库与应用(代码)之间,进行数据处理与交互的中间服务。

2,逻辑库(schema):数据库中间件可以被看做是一个或多个数据库集群构成的逻辑库。

3,逻辑表(table):读写数据的表就是逻辑表。逻辑表,可以是数据切分后,在一个或多个分片库中,也可以不做数据切分,不分片,只有一个表构成。

4,分片表:指那些原有的很大数据的表被切分到多个数据库后的表,这样,每个分片都有一部分数据,所有分片构成了完整的数据。

5,非分片表:非分片是相对分片表来说的,就是那些不需要进行数据切分的表。

6,全局表:类似字典表的表,变动不频繁,数据量总体变化不大,数据规模不大,很少有超过数十万条记录。

7,分片节点(dataNode):数据切分后,一个大表被分到不同的分片数据库上面,每个表分片所在的数据库就是分片节点。

8,节点主机(dataHost):数据切分后,每个分片节点不一定都会独占一台机器,同一机器上面可以有多个分片数据库,这样一个或多个分片节点所在的机器就是节点主机(dataHost)。

9,分片规则(rule):前面讲了数据切分,一个大表被分成若干个分片表,就需要一定的规则,这样按照某种业务规则把数据分到某个分片的规则就是分片规则

10,全局序列号(sequence):数据切分后,原有的关系数据库中的主键约束在分布式条件下将无法使用,因此需要引入外部机制保证数据唯一性标识,这种保证全局性的数据唯一标识的机制就是全局序列号

11,多租户:多租户技术或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。

多租户实现方式:

1,独立数据库:即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本也高。    

2,共享数据库,隔离数据架构:即多个或所有租户共享 Database,但是每个租户一个 Schema(逻辑库)。

3,共享数据库,共享数据架构:即租户共享同一个 Database、同一个 Schema,但在表中通过 TenantID 区分租户的数据。这是共享程度最高、隔离级别最低的模式。





猜你喜欢

转载自blog.csdn.net/gcc_java/article/details/79957899