Mycat
文章平均质量分 94
中间件兴趣圈
《RocketMQ技术内幕》一书作者、RocketMQ开源社区优秀布道师、CSDN2020博客之星TOP2,主打成体系剖析java中间件,已发布RocketMQ、Kafka、Dubbo、Sentinel、Canal、ElasticJob、ElasticSearch等15个专栏。
展开
-
Mycat 多租户方案
Mycat多租户方案1、需求 1、1 需求图 1、2 环境说明 环境说明: 2 每租户一逻辑库方案 2.1实现思想 用户在用用户名登陆时,首先,需要根据用户名,查询到该用户所在的逻辑库,然后登陆成功后,将和会话信息存放在一起,方便在访问其他业务的时候,能够很方便的得到该逻辑库。与此同时,利用Mybatis 提供的 SQL拦截器机制与Mycat提供的注解,改写S原创 2016-09-25 15:40:55 · 12010 阅读 · 9 评论 -
Mycat心跳机制梳理
本文重点梳理了一下Mycat心跳机制。原创 2017-12-14 21:04:28 · 5406 阅读 · 0 评论 -
mycat1.6使用案例----load data file使用示例(ER分片字表数据导入)
本文展示load data infile在mycat下的使用经验,根据错误提示完成mycat数据导入,并自动分片路由。原创 2017-04-27 17:00:50 · 6248 阅读 · 1 评论 -
源码分析MyCat之SQL解析篇-----sql解析引擎druid之抽象语法树(mycat1.6)
1、Druid解析引擎概要DruidSQL解析引擎主要分为三个部分,AST抽象语法树,词法解析,语法解析。AST抽象语法树,语法解析的结果,由众多AST语法对象组成一颗树,而词法分析就是解析出一个一个关键字,作为语法解析的输入。Druid SQL解析引擎整体介绍,推荐一篇文章:http://www.tuicool.com/articles/NNJNbmF故本节重点认识一下...原创 2017-05-16 18:14:25 · 12993 阅读 · 2 评论 -
Navicat for MySQL 执行sql文件过程分析(导入数据)
例如需要导入的文件内容如下:INSERT INTO `es_goods_community` (`id`, `goods_id`, `community_id`, `status`, `seller_id`) VALUES (8741, 424, 4, 1, 24);INSERT INTO `es_goods_community` (`id`, `goods_id`, `community...原创 2017-05-08 09:46:07 · 4781 阅读 · 0 评论 -
源码分析MyCat----优化篇之支持ER分片多语句插入(基于1.6)
1、ER分片支持多语句插入优化1.1问题抛出一个经典的使用场景,订单表(t_order)与订单明细(t_order_item),订单明细表ER分片与订单表。代码层次一般有如下实现(OrderDao):voidcreateOrder(Orderorder);voidcreateOrderItem(IntergerorderId,OrderItemitem...原创 2017-05-16 09:47:25 · 2417 阅读 · 0 评论 -
mycat1.6研究环境搭建(全局序列号、读写分离、故障转移)
为了充分揭示mycat读写分离、写节点挂掉后的自主切换、路由解析等原理,先搭建mycat测试环境,架构如下:1、源码安装 mysql安装Linux编译等基础软件 yum -y install gcc gcc-c++ ncurses-devel pcre pcre-devel openssl openssl-devel 安装cmake cmake安装包下载地址:http...原创 2017-05-03 14:52:10 · 5288 阅读 · 2 评论 -
MyCat1.6带返回参数存储过程调用示例
本例环境:SpringMVC3.x + Mybatis3.x + Mycat1.6 + Mysql5.6。1、创建带出参存储过程DELIMITER && CREATE PROCEDURE `test_proc`( in a_id int , out a_goods_id int)BEGIN SELECT a.goods_id I...原创 2017-05-09 16:51:16 · 7536 阅读 · 1 评论 -
源码分析mycat1.6之mysql通信协议篇之COM_QUERY(SELECT语句报文解析)
本文重点分析 COM_QUERY 命令,关注select命令的发送与结果集响应协议解析。相关协议定义请参考:https://dev.mysql.com/doc/internals/en/com-query.html请求响应报文:https://dev.mysql.com/doc/internals/en/com-query-response.html#packet-COM_QUERY_Re...原创 2017-04-17 09:37:39 · 4694 阅读 · 0 评论 -
源码分析mycat1.6之网络篇----前后端连接交互设计(mycat命令处理流程)
本章将从如下3个方面剖析mycat前后端交互原理:1、mycat握手认证阶段、命令处理阶段切换2、mycat前后端如何交互3、后端连接及IO线程模型。1、mycat握手认证阶段、命令处理阶段切换从上篇mycat前端线程模型可以看到,mycat对应用程序来说将自己伪装成mysql服务器(实现mysql通信协议)接受客户端的命令,比如查询,更新等命令。mycat前端线程模型基于主从...原创 2017-04-20 09:38:52 · 4889 阅读 · 3 评论 -
源码分析mycat1.6之mysql通信协议篇之存储过程调用
1、环境搭建创建一个测试存储过程,支持入参与出参。DELIMITER&&createPROCEDUREtest_proc(ina_idint,outr_user_namevarchar(50))BEGINSELECTa.user_nameINTOr_user_name...原创 2017-04-18 12:16:53 · 3587 阅读 · 1 评论 -
源码分析mycat1.6之网络篇---前端线程模型下篇(读写事件篇)
1、mycat 前端读事件处理程序的入口处:NIOReactor的run方法:直接调用的方法为AbstractConnection的aysnRead方法。NIOSocketWR,IO处理的核心入口:@Override public void asynRead() throws IOException { ByteBuffer theBuffer =...原创 2017-04-11 12:08:15 · 2833 阅读 · 2 评论 -
源码研读Mycat1.6之网络篇---前端线程模型(应用程序与mycat交互篇)上篇
Mycat 使用的线程模型也是基于 Reactor 主从设计模式,其设计类图如下:NIOAcceptor,在Reactor主从模式中扮演Acceptor与主Reactor角色,主要承担客户端的连接事件(accept)。 NIOReactorPool,从Reacotr池,acceptor监听客户端连接后,将从该Reactor池中随机选取一个Reactor进行注册读、写事件。 NioRea...原创 2017-04-10 11:46:07 · 2962 阅读 · 1 评论 -
源码研究mycat之mysql通信协议篇之握手认证协议
1、mysql 通信协议使用小端序列进行传输。大端序列与小端序列:小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 大端法(Big-Endian)就是高位字节排放在内存的低地址端即该值的起始地址,低位字节排放在内存的高地址端。通俗的讲,小端法,接收方先接收到整数的低位部分。大端法,接收方先接收到正式的高位部分。比...原创 2017-04-07 15:05:56 · 5086 阅读 · 1 评论 -
Mycat范围求模分片
讲解Myat范围求模分片规则之前,让我们先看如下这样的一个系统的特征:比如一个系统,具备如下特点:门店数量增长快,各集团内门店数量分布不均匀。 业务为统计类业务,都是基于某一段时间内,然后对某一集团内的门店进行数据统计。 数据规模较大,以一个集团,500个门店,主表,每天1000条数据计算的话,一天是50万条,一个月就是150万条数据。半年单表数据量为900万条。由于分为淡 旺季,故...原创 2016-10-28 14:57:26 · 3198 阅读 · 0 评论 -
mycat全局序列号
1、全局序列化Mycat支持的全局序列化主要包括 本地文件方式,数据库方式,本地时间戳方式。实际生产环境,建议还是使用数据库方式。数据库方式配置:<system><property name="sequnceHandlerType">1</property></system>其中0代表本地文件方式,1代表数据库方式,2代表时间戳方式...原创 2016-09-29 15:08:10 · 2990 阅读 · 1 评论 -
源码研究Mycat1.6目录检索
源码分析MyCAT1.6目录:1、源码研究mycat之mysql通信协议篇之握手认证协议2、源码分析mycat1.6之mysql通信协议篇之COM_QUERY(SELECT语句报文解析)3、源码分析mycat1.6之mysql通信协议篇之存储过程调用4、源码研读Mycat1.6之网络篇---前端线程模型(应用程序与mycat交互篇)上篇5、源码分析mycat1.6之网络篇...原创 2018-01-31 15:02:55 · 7843 阅读 · 0 评论