![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库中间件
文章平均质量分 79
普通网友
这个作者很懒,什么都没留下…
展开
-
MyCat 分析02
3. 重点看默认的c.execute(stmt,ServerParse.SELECT)3.1 首先检查连接状态是否关闭3.2 检查当前的事务状态是否正常3.3 检查是否已经选择过了DB,没选择过就return3.4 兼容phpAdmin's ,支持对Mysql 元数据的模拟返回,information_schema3.5 兼容MysqlWorkb...原创 2020-03-21 18:43:13 · 262 阅读 · 0 评论 -
MyCat 分析01
一、后端连接工厂,开启socketChannel1 如果是AIO,就开启一个异步的channel2 NIO 模式,就开启SocketChannel,然后设置为非阻塞的+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++查看代码MySQLConnectionFactory,创建后台连接的...原创 2020-03-21 18:37:25 · 216 阅读 · 0 评论 -
读取mysql binLog 中间件对比 canal、Maxwell、Databus、DTS
Databus和canal都能够提供实时从数据库获取变更,并提供给下游的实时消费流的功能。本文针对两个系统实现和应用上的不同点,做了一个简单的对比:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...原创 2019-12-18 22:33:00 · 1700 阅读 · 0 评论 -
数据库中间件对比
可以看到不论是代理数据库还是代理数据源,底层都操作了多个数据库实例。不同的是: 服务端代理(proxy:代理数据库)中: 我们独立部署一个代理服务,这个代理服务背后管理多个数据库实例。而在应用中,我们通过一个普通的数据源(c3p0、druid、dbcp等)与代理服务器建立连接,所有的sql操作语句都是发送给这个代理,由这个代理去操作底层数据库,得到结果并返回给应用。在这种方案下,分库...原创 2019-12-18 22:13:00 · 990 阅读 · 0 评论 -
数据库中间件Zebra 分库分表源码分析01
程序执行入口ShardStatement1.先重点看executeQuery1.1 checkClosed,检查Statement对象是否关闭1.2 根据filters 创建chain,然后获取下一个filter,执行filter的逻辑;1.3 目前执行的filter只有catFilter, 只是对执行分片查询的过程,进行成功和异常的监控。1.4 核心逻辑在exec...原创 2019-09-16 22:13:50 · 341 阅读 · 0 评论 -
数据库中间件Zebra 分库分表源码分析02
(21) 首先从SQLParsedResult获取statement,逻辑表和物理表放入到tableMapping;创建对应的重写visitor,然后调用重写,返回重写后的sql;重写sql完成后,处理一下hint语句,最后把结果放到routerResult。(22) 如果是多查询的sql重写,如下也是循环进行每个重写,返回对应的sql1.5 执行executableCheck,进...原创 2019-09-16 22:17:32 · 310 阅读 · 0 评论