Mycat中间件

一些常见的数据库中间件
Cobar / Mycat / TDDL / Sharding-JDBC

Mycat 可以认为是一个虚拟的数据库服务器,可以看作是一个基于mysql协议的数据库代理。解决:分库分表带来的复杂操作。

官网 http://www.mycat.io/
电子书 http://www.mycat.io/document/Mycat_V1.6.0.pdf

应用场景
读写分离 、 分库分表

Mycat在linux的安装
1、下载安装包 http://dl.mycat.io/
2、日志 /logs/wrapper.log Resources/log4j.xml
3、启动 默认端口 8066

Mycat配置文件

schema.xml
<schema name="database_rice1" /> 配置逻辑数据库(mycat虚拟数据库下的database)
<table name="td_user_info" dataNode="dn1,dn2,dn3" />定义逻辑表,td_user_info绑定到对应的dn1,dn2,dn3的数据库上,并且做了水平切分
<childTable name=""/>垂直分库后的表
<dataNode name="db1"/>绑定虚拟数据库到具体的database上
<dataHost name="localhost" /> 指向一个真实存在的物理数据库

rule.xml
<tableRule name="auto-sharding-long"/>
<funtion name="rang-long"/>

server.xml
<user name="root"/> 配置权限控制

Mycat实现读写分离
待详解

Mysql全局ID解决方案
本地文件方式,server.xml中配置sequnceHandlerType=0 表示使用本地文件的方式去做全局ID
数据库方式,使用全局的序列表
分布式zkid

Mycat分片规则
枚举分片
范围分片
取模分片

一些概念
逻辑库
真实的数据库
逻辑表
应用层真实操作的表
分片表
分片后,落在各个库的表
非分片表
没有做分片
全局表
在整个分片里它是全局的,每一个分片里都会保存一份相同的数据(如 字典数据表)(如何做数据同步?)

猜你喜欢

转载自blog.csdn.net/liu_dou/article/details/76285412