扫描右侧图片或微信搜索 “ Java技术分享屋 ” ,回复 “ 验证码 ” ,获取验证密码。
本资料仅供读者预览及学习交流使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!
一.资料图片
二.资料简介
Mycat 是数据库分库分表的中间件,Mycat 使用最多的两个功能是:读写分离和分库分表功能,支持全局表和E-R关系(这两个比较实用)。
三.资料目录
目录
入门篇 ......................... 12
MYCAT 开源宣言 ...................12
第 1 章 概述 ..................................................... 14
1.1 数据库切分概述 ..............................14
1.2 垂直切分 ...........................................17
1.3 水平切分...........................................18
第 2 章 MYCAT 前世今生 ................................ 21
2.1 序章 ...................................................21
2.2 Mycat 闪耀登场 .............................28
2.3 Mycat 概述 ......................................31
第 3 章 MYCAT 中的概念 ................................ 35
3.1 数据库中间件 ..................................35
3.2 逻辑库(schema) .............................35
3.3 逻辑表(table) .............................36
3.4 分片节点(dataNode) ....................37
3.5 节点主机(dataHost) ......................37
3.6 分片规则(rule) ................................37
3.7 全局序列号(sequence) .................38
3.8 多租户 ...............................................38
第 4 章快速入门 .............................................. 39
4.1 10 分钟入门 .....................................39
4.2 快速镜像方式体验 MyCAT ...........41
4.3 服务安装与配置 ..............................41
4.4 服务启动与启动设置 ......................44
4.5 基于 zk 的启动 ................................45
4.6 demo 使用.......................................52
第 5 章日志分析 .............................................. 53
5.1 warpper 日志: .............................54
5.2 mycat 日志 ......................................55
5.3 debug 模式下分析 sql 执行。 ....58
5.4 异常日志 ...........................................62
第 6 章 MYCAT 防火墙配置 ........................... 64
第 7 章 MYCAT 的配置 .................................... 69
7.1 搞定 schema.xml ...........................69
7.2 schema 标签 ...................................69
7.3 table 标签 ........................................72
7.4 childTable 标签..............................74
7.5 dataNode 标签 ..............................75
7.6 dataHost 标签 ................................76
7.7 heartbeat 标签 ...............................78
7.8 server.xml .......................................80
7.9 system 标签 ....................................82
7.10 rule.xml .........................................94
7.11 tableRule 标签 .............................94
7.12 function 标签 ...............................94
第 8 章 MYCAT 的分片 JOIN . 96
8.1 join 概述 ..........................................96
8.2 全局表 ...............................................98
8.3 ER Join .............................................99
8.4 Share join ..................................... 100
8.5 catlet(人工智能) .................... 103
8.6 Spark/Storm 对 join 扩展 ........ 105
第 9 章 全局序列号 ....................................... 106
9.1 全局序列号介绍 ........................... 106
9.2 本地文件方式 ............................... 106
9.3 数据库方式 ................................... 106
9.4 本地时间戳方式 ........................... 109
9.5 分布式 ZK ID 生成器 ................... 110
9.6 Zk 递增方式 .................................. 110
9.7 其他方式 ........................................ 111
9.8 自增长主键 .................................... 111
第 10 章 MYCAT 分片规则 ........... 114
10.1 分片规则概述 ............................. 114
10.2 Mycat 全局表 ............................ 114
10.3 ER 分片表 ................................... 114
10.4 多对多关联 ................................. 115
10.5 Mycat 常用的分片规则 ............ 116
10.6 权限控制 ..................................... 130
10.7 多租户支持 ................................. 130
第 11 章 常见问题与解决方案 .................... 131
11.1 Mycat 目前有哪些功能与特性? ............................................................... 131
11.2 Mycat 除了 Mysql 还支持哪些数据库? .................................................. 132
11.3 Mycat 目前有生产案例了么? ................................................................... 132
11.4 Mycat 稳定性与 Cobar 如何? .................................................................. 132
11.5 Mycat 支持集群么? ................ 132
11.6 Mycat 多主切换需要人工处理么?........................................................... 132
11.7 Mycat 目前有多少人开发? ... 132
11.8 Mycat 目前有哪些项目?........ 132
11.9 Mycat 最新的稳定版本是哪个到哪里下载? ........................................... 133
11.10 Mycat 如何配置字符集? ....... 133
11.11 Mycat 后台管理监控如何使用? ............................................................. 133
11.12 Mycat 主键插入后应用如何获取?.......................................................... 133
11.13 Mycat 如何启动与加入服务? ................................................................. 133
11.14 Mycat 运行 sql 时经常阻塞或卡死是什么原因? ................................. 134
11.15 Mycat 中,旧系统数据如何迁移到 Mycat 中? ................................... 134
11.16 Mycat 如何对旧分片数据迁移或扩容,支持自动扩容么? ................ 134
11.17 Mycat 支持批量插入吗? ..... 134
11.18 Mycat 支持多表 Join 吗? .... 134
11.19 Mycat 启动报主机不存在的问题?........................................................... 134
11.20 Mycat 连接会报无效数据源(Invalid datasource)? ..................... 134
11.21 Mycat 使用中如何提需求或 bug?........................................................ 135
11.22 Mycat 如何建表与创建存储过程?.......................................................... 135
11.23 Mycat 目前有多少人维护? . 135
11.24 Mycat 支持的或者不支持的语句有哪些? ............................................. 135
11.25 MycatJDBC 连接报 PacketTooBigException 异常 ........................... 135
11.26 Mycat 中文乱码的问题 ......... 136
11.27 Mycat 无法登陆 Access denied ............................................................. 136
11.28 Mycat 的分片数据插入报异常 IndexOutofBoundException .......... 136
11.29 Mycat ER 分片子表数据插入报错 ........................................................... 137
11.30 Mycat 最大内存无法调整至 4G 以上 ...................................................... 137
11.31 Mycat 使用过程中报错怎么办 ................................................................. 137
第 12 章 MYCAT 性能测试指南 ................... 137
高级进阶篇 ..................... 143
第 1 章读写分离 ................. 143
1.1 MySQL 主从复制的几种方案 ... 143
1.2 MySQL 主从复制的几个问题 .... 146
1.3 Mycat 支持的读写分离 .............. 148
第 2 章 高可用与集群 ................................... 151
2.1 MySQL 高可用的几种方案 ........ 151
首先我们看看 MySQL 高可用的几种方案: ...................................................... 151
2.2 Mycat 高可用方案 ...................... 155
2.3 Galary Cluster 配置 ................... 158
第 3 章 事务支持 ........................................... 159
3.1 Mycat 里的数据库事务 .............. 159
3.2 XA 事务原理 ................................. 159
3.3 XA 事务的问题和 MySQL 的局限 ................................................................ 162
3.4 XA 事务使用指南 ......................... 163
3.5 保证 repeatable read ................ 164
第 4 章 MYCAT SQL 拦截机制..................... 165
第 5 章 MYCAT 注解 ...................................... 167
5.1 注解原理 ........................................ 167
5.2 注解使用示例 ............................... 169
第 6 章 MYCAT 支持的 CATLET 实现 ......... 172
第 7 章 JDBC 多数据库支持 .......................... 172
7.1 JDBC 概述 ..................................... 172
7.2 JDBC 体系结构 ............................ 173
7.3 JDBC API ...................................... 174
7.4 JDBC 4.0 ....................................... 175
7.5 Mycat 对 JDBC 的支持 .............. 176
7.6 NoSQL 支持(MongoDB) .......... 176
7.7 MongoDB .................................... 177
7.7.1 配置支持 Mongodb ............... 178
7.8 Oracle ........................................... 185
7.8.1 配置支持 Oracle ...................... 185
7.8.2 三层嵌套分页 ............................ 186
7.8.3 rownum 控制最大条数 .......... 187
7.9 SQL Server ................................... 187
7.9.1 配置支持 SQL Server ............. 187
7.9.2 row_number 分页 .................. 188
7.9.3 row_number 与 top 结合分页 ................................................................. 188
7.9.4 top 限制最大条数 .................... 188
7.10 DB2 ............................................. 188
7.10.1 row_number 分页 ................ 189
7.10.2 fetch first rows only 控制最大条数 ...................................................... 189
7.11 Spark SQL/Hive ....................... 189
7.11.1 配置 Mycat ............................. 189
7.11.2 配置 Hive 安装模式 ............... 190
7.11.3 配置 Spark SQL ..................... 192
7.12 PostgreSQL .............................. 192
7.12.1 limit 分页自动转换................ 192
第 8 章 管理命令与监控............................... 193
第 9 章 压缩协议支持 ................................... 211
9.1 压缩协议支持 ............................... 211
9.2 配置说明 ........................................ 211
9.3 压缩性能测试 ............................... 211
9.4 mysql 压缩协议 ........................... 211
第 10 章 MYCAT-WEB .......... 213
第 11 章 MYCAT 对存储过程的支持 ......... 235
第 12 章 MYCAT 对 ZOOKEEPER 的支持 .... 235
生产实践篇 ..................... 237
第 1 章 生产实践案例-MYCAT 读写分离案例............................................................... 237
第 2 章分表分库案例 .................................... 240
2.1 SAAS 多租户案例 ........................ 240
2.2 每天 2 亿数据的实时查询案例 .. 241
2.3 物联网 26 亿数据的案例 ............ 242
2.4 大型分布式零售系统案例 ........... 243
第 3 章 生产环境部署 ................................... 246
3.1 单节点 mycat 部署 ..................... 246
3.2 mycat 的高可用与负载均衡 ...... 246
第 4 章 MYCAT 最佳实践 .............................. 262
第 5 章 MYCAT 实施指南 .............................. 263
5.1 Mycat 项目实施步骤 .................. 263
5.2 分表分库原则 ............................... 264
5.3 后端存储的选择 ........................... 267
5.4 数据拆分原则 ............................... 268
5.5 DataNode 的分布问题 .............. 269
5.6 Mycat 目前存在的限制 .............. 269
第 6 章 数据迁移与扩容实践 ...................... 271
6.1 离线扩容缩容 ............................... 271
6.2 案例一:使用一致性 Hash 进行分片 ........................................................... 274
6.3 案例二:使用范围分片............... 282
6.4 数据迁移的注意点 ....................... 284
6.5 load data 批量导入 .................... 285
6.6 使用 mysqldump 进行数据迁移.................................................................. 287
6.7 迁移一个表中的部分数据 ........... 288
6.8 数据自动迁移方案设计 ............... 288
6.9 数据自动迁移使用指南 ............... 290
6.9.1 约束条件 .................................... 290
6.9.2 准备 ............................................. 290
rule.xml 配置 ...................................... 290
在 myid.properties 中配置集群相关信息 ......................................................... 291
schema.xml 配置 ............................... 292
table 节点配置 .................................... 292
datahost 节点的 slaveIDs 属性配置 ................................................................. 292
配置新的 dataNode .......................... 292
使用 zk 来管理 mycat 集群 .............. 293
数据库表的要求 .................................. 294
6.9.3 执行迁移命令 ............................ 294
6.9.4 查看任务进度和结果 ............... 295
6.9.5 异常处理 .................................... 298
6.9.6 数据迁移测试 ............................ 303
第 7 章 版本选择与升级指南 ...................... 305
7.1 版本选择 ........................................ 305
7.2 mycat1.2 中的功能 ..................... 306
7.3 mycat1.3 中的功能 ..................... 306
7.4 mycat1.4 中的功能..................... 307
7.5 mycat1.5 中的功能 ..................... 308
7.6 mycat1.6 中的功能 ..................... 311
7.7 小结 ................................................ 313
7.8 1.6 升级指南 ................................. 313
第 8 章 性能调优 ........................................... 314
8.1 主机调优 ........................................ 314
8.2 JVM 调优 ....................................... 315
8.3 MyCAT 调优 ................................. 319
8.4 MySQL 通用调优......................... 320
开发篇 ............................ 324
第 1 章 加入 MYCAT .............. 324
1.1 如何加入 Mycat ........................... 324
1.2 如何获取源码 ............................... 324
第 2 章 MYCAT 开发基础 .............................. 325
2.1 代码调试入口 ............................... 325
2.2 中间件开发技能 ........................... 325
第 3 章 MYCAT 架构分析 .............................. 326
3.1 MyCAT 和 TDDL、Amoeba、Cobar 的架构比较 ................................... 326
3.2 框架比较........................................ 326
3.3 点评 ................................................ 328
3.4 其它资料........................................ 329
第 4 章 MYCAT 线程模型分析 ................... 330
4.1 MyCAT 线程模型 ........................ 330
4.2 Mycat 线程介绍........................... 330
4.3 Cobar 线程介绍 ........................... 334
4.4 Cobar 为什么那么多个线程池? .................................................................. 336
4.5 MyCAT 与 Cobar 的比较 .......... 339
第 5 章 MYCAT 的连接池模型 ...................... 340
第 6 章 MYCAT 的网络通信框架 ................. 345
6.1 先从一个测试说起 ....................... 345
6.2 MyCAT 网络框架 ........................ 347
6.3 与 Cobar 原有 NIO 细节比较 ... 366
6.4 MyCAT 的 AIO 实现 ................... 371
第 7 章 MYCAT 的路由与分发流程 ............. 381
7.1 路由的作用 ................................... 381
7.2 路由解析器 .................................... 381
7.3 druid 路由解析的两种方式 ....... 384
7.4 路由计算 ........................................ 388
7.5 路由计算的核心要素 ................... 393
7.6 单个表的路由计算 ....................... 393
7.7 多个表的路由计算 ....................... 394
7.8 全局表的路由计算 ....................... 395
7.9 or 语句的路由计算 ...................... 396
7.10 系统语句的路由计算 ................. 402
7.11 相关类图和序列图 ..................... 402
7.12 路由解析过程中的一些控制变量 ................................................................ 405
第 8 章 MYCAT 的 JDBC 后端框架 ............. 406
8.1 JDBC 方式访问后端数据库 ........ 406
8.2 JDBC 相关类图............................. 406
8.3 JDBCDatasource ....................... 407
8.4 JDBCConnection ....................... 410
8.5 JDBCHeartbeat .......................... 416
第 9 章 MYCAT 的事务管理机制 ................. 418
9.1 Mycat 事务源码分析 .................. 419
第 10 章 MYCAT 的分页和跨库 JOIN ............................................... 422
10.1 多数据库支持的分页机制 ........ 422
10.2 ShareJoin 代码分析 ................. 437
第 11 章 MYCAT 缓存 ................................... 448
11.1 缓存介绍及代码分析 ................. 448
11.2 SQLRouteCache ...................... 451
11.3 TableID2DataNodeCache .... 453
11.4 ER_SQL2PARENTID ................ 458
第 12 章 MYCAT 的分片规则设计 ............... 462
12.1 分片规则设计架构 .................... 463
12.2 分片规则自定义实现 ................ 466
第 13 章 MYCAT LOAD DATA 源码 .............. 471
13.1 load data 代码分析 ................. 471
13.2 mysql 压缩协议代码分析 ........ 479
第 14 章 MYCAT 外传-群英会 ..................... 486
14.1 我不做大哥很多年 .................... 486
14.2 冰风影 ......................................... 486
14.3 从零开始 ..................................... 487
14.4 黑白咖啡 ..................................... 488
14.5 石头狮子 ..................................... 488
14.6 Rainbow ..................................... 489
14.7 Mycat 铁杆粉丝 ........................ 490
14.8 兵临城下 ..................................... 490
14.9 我是谁 ......................................... 491
14.10 当太极遇到 AK47 ................... 491
14.11 传说中的 Mycat 大美女 ........ 493
14.12 Mycat 至尊酱油师 .................. 493
14.13 白衣公子 ................................... 494
14.14 他入错了行 ............................... 495
14.15 烟花易冷-奎 ............................. 496
14.16 海王星 ....................................... 496
14.17 太极鸟人 ................................... 497
14.18 成都-顽石神 ............................. 498
14.19 杭州-白 ............... 498
14.20 allnet-深海 ............. 498
14.21 明明 Ben .................................... 498
14.22 上海-袁文华 ............ 499
14.23 杭州-yuanfang ....................... 499
14.24 胡雅辉 ................ 499
14.25 KK ............................................... 500
14.26 CrazyPig ...................................... 500
14.27 传说的学霸 ............ 500
14.28 毛茸茸的逻辑 ........... 501
14.30 深圳-Java-HelloWorld ................. 501