当前位置:网站首页>【MyCat简单介绍】
【MyCat简单介绍】
2022-08-05 05:25:00 【技术的搬运工】
1)MyCat简介
MyCat是MySQL分库分表的利器
MyCat的核心功能是分库分表,其配置数据库的主从模式还可实现读写分离
MyCat 是什么?
MyCat是目前最流行的基于java语言编写的数据库中间件,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQl服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分库分表。配合数据库的主从模式还可实现读写分离。
MyCat是基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得 MyCat变得非常的强大。
2)MyCat读写分离
主库因为要处理增、删、改的事物所以要支持事物的 InnoDB 引擎
而从库只是查询操作,使用 MyISAM 引擎查询效率更高
读写分离
原理:需要搭建主从模式,让主数据库(master)处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库(slave)处理SELECT查询操作。
Mycat配合数据库本身的复制功能可以解决读写分离的问题。
主从备份概念
1、什么是主从备份:就是一种主备模式的数据库应用
2、主库(Master)数据 与 备库(Slave)数据 完全一致
3、实现数据的多重备份,保证数据的安全
4、可以在 Master[InnoDB] 和 Slave[MylSAM] 中使用不同的数据库引擎,实现读写的分离
3)主从备份的目的
实现主备模式
保证数据的安全,尽量避免数据丢失的可能.
实现读写分离
使用不同的数据库引擎,实现读写分离;提高所有的操作效率;JInnoDB使用DML语法操作;MyIlSAM使用DQL语法操作.
主库操作同步到备库
所有对 Master 的操作,都会同步到 Slave 中.
如果 Master(主库) 和 Salve(备库) 天生上环境不同,那么对 Master 的操作,可能会在 Slave 中出现错误。
如在创建主从模式之前,Master 有 database : db1、db2、db3。 Slave 有 database: db1、db2。
创建主从模式,现在的情况 Master 和 Slave 天生不同。
主从模式创建成功后, 在 Master 中 drop database db3.
Slave 中抛出数据库SQL异常。后续所有的命令不能同步,一旦出现错误,只能重新实现主从模式。
主从模式下的逻辑图:
解读:(主从模式下,保持数据一致性的流程)
主库(Master)每次数据变更的时候,都会写入到 二进制日志文件 Binary log 中然后从库(Slave)会启动一个 I/O线程(I/O thread)去读取主库(Master)里面 二进制的日志文件 Binary log读取过来之后,它就会写入到 从库(Slave)对应的 日志文件 Relay log 中然后 从库(Slave)中有一个专门的 SQL 线程(SQL thread)去读取 Relay log 日志文件读取过来之后,根据 Relay log 日志的内容,把相应的命令在我们的 从库(Slave)中操作一遍,相当于把我们主库中的数据,全部同步到了从库中
4)逻辑库 Schema
Mycat 中定义的 database,是逻辑上存在的,但是物理上是不存在的
主要是针对 纵向切分 提供的概念
5)逻辑表 table
Mycat 中定义的 table,是逻辑上存在,物理上是不存在的
主要是针对 横向切分 提供的概念
6)默认端口
MySQL 默认端口是 3306Mycat 默认端口是 8066tomcat 默认端口是 8080Oracle 默认端口是 1521nginx 默认端口是 80http协议 默认端口 80redis 默认端口是 6379
7)数据主机 dataHost (就是存放数据库的服务器的地址)
物理 MySQL 存放的主机地址,可以使用主机名、IP 或 域名定义
8)数据节点 dataNode (就是连接数据库的地址)
配置物理的 database, 数据保存的物理节点,就是 database
9)分片规则
当控制数据的时候,如何访问物理 database 和 table,就是访问 dataHost 和 dataNode 的算法.
在 Mycat 处理具体的数据 CRUD 的时候,如何访问 dataHost 和 dataNode 的算法,如:哈希算法、crc32算法等
边栏推荐
- Teach you simple steps to achieve industrial raspberries pie properly installed RS232 USB drive
- document.querySelector() method
- Collision, character controller, Cloth components (cloth), joints in the Unity physics engine
- 无法导入torchvision.io.read_image
- 获取预训练模型的网络输入尺寸
- Chengyun Technology was invited to attend the 2022 Alibaba Cloud Partner Conference and won the "Gathering Strength and Going Far" Award
- 多线程之传递参数
- transport layer protocol
- BIO, NIO, AIO practical study notes (easy to understand theory)
- Next-Generation Parsing Technology - Cloud Parsing
猜你喜欢
Complete mysql offline installation in 5 minutes
config.js相关配置汇总
GetEnumerator method and MoveNext and Reset methods in Unity
Met with the browser page
NB-IOT智能云家具项目系列实站
Writing OpenCV in VSCode
多用户商城多商户B2B2C拼团砍价秒杀支持小程序H5+APP全开源
The cocos interview answers you are looking for are all here!
文件内音频的时长统计并生成csv文件
Alibaba Cloud Video on Demand
随机推荐
Tencent Internal Technology: Evolution of Server Architecture of "The Legend of Xuanyuan"
After docker is deployed, mysql cannot connect
LeetCode中常用语言的一些基本方法记录
【FAQ】什么是 Canon CCAPI
Browser Storage for H5
selenium学习
Take you in-depth understanding of cookies
Collision, character controller, Cloth components (cloth), joints in the Unity physics engine
网络协议基础-学习笔记
摆脱极域软件的限制
BIO,NIO,AIO实践学习笔记(便于理解理论)
Network Protocol Fundamentals - Study Notes
LaTeX笔记
config.js related configuration summary
Mina's long and short connections
NACOS Configuration Center Settings Profile
Media query, rem mobile terminal adaptation
LaTeX使用frame制作PPT图片没有标号
## 简讲protobuf-从原理到使用
BIO, NIO, AIO practical study notes (easy to understand theory)