📫作者简介:小明java问道之路,专注于研究 Java/Liunx内核/C++及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。
📫 热衷分享,喜欢原创~ 关注我会给你带来一些不一样的认知和成长。
🏆 CSDN博客专家 | CSDN后端领域优质创作者 | CSDN内容合伙人 | 2022博客之星
🏆 InfoQ(极客邦)签约作者、阿里云专家 | 签约博主、51CTO专家 | TOP红人、华为云享专家
🔥如果此文还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主~
🍅 文末获取联系 🍅 👇🏻 精彩专栏推荐订阅收藏 👇🏻
专栏系列(点击解锁)
学习路线(点击解锁)
知识定位
🔥Redis从入门到精通与实战🔥
Redis从入门到精通与实战
围绕原理源码讲解Redis面试知识点与实战
🔥MySQL从入门到精通🔥
MySQL从入门到精通
全面讲解MySQL知识与企业级MySQL实战 🔥计算机底层原理🔥
深入理解计算机系统CSAPP
以深入理解计算机系统为基石,构件计算机体系和计算机思维
Linux内核源码解析
围绕Linux内核讲解计算机底层原理与并发
🔥数据结构与企业题库精讲🔥
数据结构与企业题库精讲
结合工作经验深入浅出,适合各层次,笔试面试算法题精讲
🔥互联网架构分析与实战🔥
企业系统架构分析实践与落地
行业最前沿视角,专注于技术架构升级路线、架构实践
互联网企业防资损实践
互联网金融公司的防资损方法论、代码与实践
🔥Java全栈白宝书🔥
精通Java8与函数式编程
本专栏以实战为基础,逐步深入Java8以及未来的编程模式
深入理解JVM
详细介绍内存区域、字节码、方法底层,类加载和GC等知识
深入理解高并发编程
深入Liunx内核、汇编、C++全方位理解并发编程
Spring源码分析
Spring核心IOC/AOP等源码分析
MyBatis源码分析
MyBatis核心源码分析
Java核心技术
只讲Java核心技术
本文目录
本文目录
本文导读
一、MyCAT入门
二、MyCAT作为数据库中间层
三、MyCAT实现读写分离和负载均衡
四、MyCAT对数据库进行垂直/水平切分
五、MyCAT优点
六、MyCAT安装
总结
本文导读
掌握MyCAT的基本概念,MyCAT的应用场景和优缺点,掌握MyCAT安装和启动。
一、MyCAT入门
MyCAT是Java语言编写的MySQL数据库网络协议的开源中间件。
MyCAT 相当于MySQL SERVER层,MySQL就相当于MyCAT的存储层。MyCAT不存储数据所有数据都存储在MySQL中。我们可以理解MyCAT是MySQL。MyCAT对开发人员是透明的。MyCAT对使用的SQL有一些限制。
二、MyCAT作为数据库中间层
MyCAT是一个数据库中间层位于前端应用与后端数据库中间,可以为后端数据库实现数据库分库分表和读写分离,MyCAT为应用程序隐藏后端数据库的存储逻辑 。
三、MyCAT实现读写分离和负载均衡
MyCat 可以实现数据库负载均衡/读写分离,搭建之前保证数据库的数据一致,将两个主机互为主从,互相实现挂载,主即从。
MyCat 主从配置步骤:
1、编辑主数据库的配置文件以打开二进制日志并检查是否已启用
2、编辑从库配置(server-id 值不同,其他操作一致)
3、主从数据库挂载(如果需要数据库的主从同步,则应从从数据库安装到主数据库)
四、MyCAT对数据库进行垂直/水平切分
逻辑库:对于应用程序相当于MySQL中的数据库。逻辑库可以对应于后端的多个物理数据库,而无需保存数据(订单库、商品库……)
逻辑表:对于应用程序相当于MySQL中的数据表。逻辑表可以对应于后端多个物理数据库中的表,也不保存数据(商品、商品、配送信息表……)
五、MyCAT优点
高性能:支持并行拉取结果集、支持自动调动后端结果集、支持多种路由注释、优化器注释
优化:对请求的sql进行参数化、缓存物理执行计划、相同参数化sql的请求、将免去一些分析优化过程
优化查询计划:定制Calcite分布式查询引擎、编译SQL到关系代数表达式、规则优化引擎和代价优化引擎、生成物理执行计划、支持逻辑视图
支持定制任意多字段路由:提供分片算法接口、优化器简化过滤条件、分片信息与关系表达式结合生成执行sql
SQL支持语法:任意跨库跨表join查询、支持跨库跨表非关联子查询、支持跨库跨表关联子查询、支持跨库跨表Window语法、支持全局二级索引、有限支持存储过程、支持可视化配置
支持原生协议:前端协议MySQL网络通信协议、MySQL原生网络协议异步非阻塞、JDBC接口支持多种数据库、生成物理执行计划
六、MyCAT安装
MyCAT的安装步骤
1、下载并解压MYCAT(官网 mycat.org.cn/)
2、安装JAVA运行环境(JDK1.7及以上)
3、新建mycat运行系统账号
4、配置系统环境变量
5、修改mycat启动参数
总结
掌握MyCAT的基本概念,MyCAT的应用场景和优缺点,掌握MyCAT安装和启动。