-
MYCAT读写分离
查看全部 -
MYCAT读写分离配置:
Linux环境下:
停止MYCAT: bin/mycat stop
启动MYCAT: bin/mycat start
查看全部 -
server.xml文件:定义了所有与MYCAT系统相关的配置
<system><property name=""></property></system>用于定义系统配置,比如系统的端口号,系统的内存大小,超时时间等
<user></user>用于定义连接MyCAT的用户,比如用户名,密码等
查看全部 -
rule.xml文件:定义了对表的分片规则
<tableRule name=""></tableRule>定义表使用的分片规则
<function name=""></function>定义分片算法
查看全部 -
schema.xml文件:
1. <schema><table></table></schema>定义逻辑库表
2. <dataNode></dateNode>定义数据节点
schema:定义逻辑库
table:定义逻辑库下的逻辑表
通过这组标签可以知道:逻辑表依赖于逻辑库尔存在的,如果数据库不需要分片,只需要读写分离,那么就可以不配置逻辑表(table),只需保留schema标签就可以了
dateNode:定义分片节点
一个数据节点代表一个独立的数据分片,这个标签中定义的内容包括:节点名字、物理数据库的名字
3. <dataHost></dataHost>定义数据节点的物理数据源
dataHost:定义物理数据源的信息(物理数据库实例),它定义了一组主机节点,这组节点是一个真实的物理数据库实例。一个dataHost所指定的主机就是一组真实的MySQL集群,除此之外还包括定义读写分离的配置和心跳语句的配置。
查看全部 -
mycat的关键配置文件
1、schema.xml:用于配置逻辑库表及数据节点
2、rule.xml:用于配置表的分片规则
3、server.xml:用于配置服务器权限
server.xml文件
system:定义与mycat系统相关的一些重要配置,比如:端口号、系统使用内存大小等等
user:定义连接mycat的用户(账号、密码等)
注意:这里定义的用户和后端数据库的实际用户时不一样的
rule.xml文件
1、tableRule:定义表使用的分片规则
2、function:定义分片算法
schema:定义逻辑库
table:定义逻辑库下的逻辑表
通过这组标签可以知道:逻辑表依赖于逻辑库尔存在的,如果数据库不需要分片,只需要读写分离,那么就可以不配置逻辑表(table),只需保留schema标签就可以了
dateNode:定义分片节点
一个数据节点代表一个独立的数据分片,这个标签中定义的内容包括:节点名字、物理数据库的名字
dataHost:定义物理数据源的信息(物理数据库实例)
查看全部 -
启动MYCAT
查看全部 -
安装java运行环境1.7以上
下载mycat源
wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
配置环境变量
vi /etc/profile
export MYCAT_HOME=/usr/local/mycat
查看全部 -
安装MYCAT
查看全部 -
MYCAY的关键特性:
1. 支持sql92标准:sql92标准是大多数关系型数据库都支持的一个SQL标准,这个标准中定义了SQL语句的一些功能和标准的一些事务的特性,比如说隔离级别等。
2. 支持MYSQL集群:一主多从,一主一从,多主多从等。
3. 支持JDBC连接数据库:可以通过JDBC来连接除了MySQL之外的其他关系型数据库,比如Oracle,MSSQL,SqlServer,PgSQL等
4. 支持NOSQL数据库: 比如MongoDB。
5. 支持自动故障切换,高可用性
6. 支持读写分离
7. 支持全局表:全局部就是一些比较小的字典表,这些表一般都很小,并且经常与其他数据表进行关联使用。MYCAT可以把同样的数据自动的存储到多个分片节点上,这样可以有效提高表之间的关联效率。
8. 支持独有的基于ER关系的分片策略:ER关系就是实体关系模型,是关系型数据库的基础。ER关系的分片策略是基于ER关系模型来实现的,这种分片策略可以把子表记录与所关联的附表存放到同一个数据分片上。也就是说子表可以依赖于附表来进行存储,这样就保证了在子表与附表关联的时候不会跨分片跨库来进行操作。
9. 支持一致性HASH分片
10. 基于Java开发,支持多平台运行与部署
11. 支持全局序列号:全局序列号保证Id全局唯一
查看全部 -
MYCAT的基本概念:
1. MYCAT中的数据库——逻辑库,
位于中间层,它屏蔽了分库、分表后,数据库操作的复杂性。前端应用可以像使用一个未分库、分表的数据库一样来使用分库、分表的数据库(数据库路由等都是由中间件实现)
user_db是逻辑数据库
db01、db02、db03是物理数据库
mycat中只保存逻辑库的定义,不保存数据,具体的数据存储在物理数据库中
2. MYCAT中的数据库——逻辑表:前端应用通过MYCAT所看到的表就是逻辑表,一个逻辑表可能对应后端的多个物理数据库中的表,比如User_DB逻辑库中有一张user_info逻辑表,而实际上user_info表中的数据是存储在db01,db02,db03物理库中的物理user_info表中。
查看全部 -
MYCAT的主要作用:MYCAT可以实现数据库的垂直拆分
数据库的垂直拆分:可以称之为纵向的拆分,把数据库中的表按照一定的规则来分摊到多个数据库实例中,比如一个电商系统可以将用户模块、订单模块、支付模块等相关涉及的表分别存放到用户库,订单库,支付库中。
数据库的水平拆分:也就是分库分表,在经过垂直拆分后,业务量持续发展,规模相当大。这时,拆分过后的用户库已经不能满足需求,这时需要通过一定的规则进行水平拆分
切蛋糕(从左向右水平分开)
将原来的一个用户库分成多个用户库,通过一定的规则进行切分(拆分之后,每个库中的表结构都一样),前端应用通过mycat和切分规则来对后端切分后的数据库进行访问
查看全部 -
MYCAT的主要作用:
2. 实现数据库的读写分离,MYCAT支持读负载均衡,多出现在一主多从的架构上,读操作可以在多个从服务器上进行均衡。MYCAT还支持后端MySQL主从复制集群高可用。
这里的高可用:指的是可以在配置的时候,除了主节点之外,在指定一台从节点也可以支持写的功能,当主节点宕机之后,MYCAT会把写的SQL路由到我们在配置文件中指定的从节点上,并且并不支持把其他的从节点设置为新的主节点进行主从同步的功能。
查看全部 -
MYCAT的主要作用:
1. MYCAT实现了MySQL通信协议的一个分布式数据库系统中间层。
数据库中间层的作用:数据库读写分离、读负载均衡、数据库连接池(控制数据库的连接数量)、屏蔽后端数据库的变更,对关系型数据库、非关系型数据库进行操作。
查看全部 -
MYCAT的前世今生
查看全部
举报