版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LiuY521/article/details/90753979
Ŀ¼
https://blog.csdn.net/LiuY521/article/details/90754711
一.Mycat的介绍
中国第一开源数据库分布式中间件,
特点
- 实现高性能的读写分离
- 实现水平分片计算 100亿大表数据;
- 数据的输入输出整合
1.为什么要用Mycat呢?
如图所示,之前做了个Easymall项目,上篇博客写了一个双机热备,读写分离,那么如何让项目实现,写的时候连接主节点,读取的时候,使用从节点呢?通过代码其实也可以实现,但是要写的代码量过于庞大,那么为什么不使用,工具呢?能做车,为什么步行呢,数据库集群交给Mycat来管理
2.MyCat的目标是
低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。
3.同类产品和运行原理
1.运行原理
- 代理客户端拦截前端客户端发送的sql
- 计算读写分离,计算分片,整理最终的sql
- 将结果从数据库返回给前端客户端使用
- 前端客户端对于后端的数据库集群完全不可见的;
2.同类产品
- ameoba:cobar和mycat前身,版本不更新了很多需求功能读写分离,高可用替换等支持的不好.
- cobar:实实在在的mycat,早期后端连接时阻塞线程逻辑
- mycat:自主实现了后端连接的NIO编码,通过非阻塞编程解决后端数据库假死现象;
3.假死现象
- 阻塞线程:线程从执行到结束一直占用非空闲(每一步之间是同步).类似打电话
- 非阻塞线程:线程执行一定步骤,根据后续的逻辑进行空闲和繁忙的分配(每一步都是异步的).
- mycat实现了后端的nio非阻塞编程,
- 每一个线程连接后端数据库后,
- 无需等待它执行完毕,
- 无需等待接收返回,
- 线程利用率非常高(redis也是非阻塞)
二.Mycat安装
https://blog.csdn.net/LiuY521/article/details/90754711
文章来源: https://blog.csdn.net/LiuY521/article/details/90753979