会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
just can't stop moving forward - Minor Poet
if you never try, you'll never know
博客园
首页
新随笔
联系
管理
2024年8月13日
[Zebra] 分片路由和寻找分片键值的基本过程
摘要: 路由规则匹配 分库分表路由规则是表+字段的维度,首先要将 sql 中的表识别出来,然后和规则进行匹配, 然后才能根据规则确定分库分表是用哪个字段、按照什么分片算法,比如 userId 8 库 128表; zebra 中 DefaultShardRouter#router 路由器首先进行 sql 解析
阅读全文
posted @ 2024-08-13 21:34 mushishi
阅读(46)
评论(0)
推荐(0)
2023年4月18日
mysql connector 执行 select 和 shardingshpere-proxy 的处理过程
摘要: use java mysql connector // fake mysql select code // ... datasource init Connection conn = datasource.getConnection(); PreparedStatement pst = conn.p
阅读全文
posted @ 2023-04-18 15:50 mushishi
阅读(132)
评论(3)
推荐(0)
2023年4月10日
postgresSQL Extended Query执行过程和sharding-proxy的处理
摘要: pg Extended Query PostgreSQL: Documentation: 15: 55.2. Message Flow 多个阶段,可复用 Parse → DESCRIBE statement → SYNC Parse 解析, 将 sql 文本字符串,解析成 named prepare
阅读全文
posted @ 2023-04-10 15:20 mushishi
阅读(293)
评论(0)
推荐(0)
2022年1月21日
连接池超时获取不到连接的可能原因
摘要: 平时工作用数据库连接池的时候,有时候会遇见超时获取不到的报错: Connection is not available, request timed out after XXms. 但是,并不能一下子看出什么问题导致,因为可能性有蛮多: 1. 可能是真的连接池负载高了 这种情况,连接数达到最大连接数
阅读全文
posted @ 2022-01-21 16:35 mushishi
阅读(4460)
评论(0)
推荐(0)
2021年10月26日
当redis集群在slot迁移过程中redis客户端如何处理
摘要: 1.背景 假设,当前redis集群只有2个节点 node-A 和 node-B,总共有3个slot, 其和节点的对应关系如图, client 会将其缓存一个映射map 现在要扩容新增一个节点 node-3, 并把 slot3 的数据迁移到 node-3,如下图 2. 问题 在 slot-3 迁移结束
阅读全文
posted @ 2021-10-26 15:25 mushishi
阅读(804)
评论(0)
推荐(0)
2021年8月15日
jdbc如何注册数据库驱动Driver的?
摘要: 1. 先看看原生jdbc执行sql的步骤 // 在程序启动的时候需要注册一次mysql驱动,必须引入 mysql-connnector-java 的包 Class.forName("com.mysql.jdbc.Driver"); // 创建数据库连接 Connection connection =
阅读全文
posted @ 2021-08-15 14:35 mushishi
阅读(1263)
评论(0)
推荐(0)
2021年7月25日
virtualbox结合nat和host-only设置固定ip的环境
摘要: 需求 平时在做一些实验或学习的时候,比如rocketmq、kafaka、zookeeper等,需要在虚拟机上创建几个虚拟机组成集群来做实验;一般有几个要求: 虚拟机能访问网络,需要下载安装东西 虚拟机的ip需要固定;不然在虚拟机重启或者电脑从家里拿到办公室的时候,ip变了,又要一个个进命令行去看ip
阅读全文
posted @ 2021-07-25 16:34 mushishi
阅读(2996)
评论(0)
推荐(3)
2021年7月16日
数据库中间件zebra源码分析
摘要: zebra源码结构 zebra客户端结构 分库分表数据源ShardDataSource初始化过程 分库分表语句ShardPreparedStatement执行过程 逻辑表名的解析过程 如果定位到多个分库或分表怎么执行的? 不带分片键的sql会怎么执行? 分组数据源GroupDataSource及其初
阅读全文
posted @ 2021-07-16 23:43 mushishi
阅读(683)
评论(0)
推荐(1)
[zebra源码]流控设计
摘要: 之所以要进行流量控制,是要避免业务应用流出量倾斜,超过分库能承载的压力 zebra的限流架构 粒度 指定要保护的db节点 指定要流控的应用ip 指定sqlId, 计算规则: sqlId = MD5(/appName/{mapper方法}).subString(0, 8) 限流策略: autoCont
阅读全文
posted @ 2021-07-16 23:19 mushishi
阅读(182)
评论(0)
推荐(0)
[zebra源码]JdbcFilter过滤器和SPI扩展
摘要: 一、 JdbcFilter 过滤器 zebra 定义了 JdbcFilter 过滤器, 它包含的方法覆盖了 zebra 执行生命周期的各个环节(如各层数据源的初始化/刷新、分组连接的获取/关闭、sql的执行 等); 那么就方便在各个环节进行监控上报等操作了 public interface Jdbc
阅读全文
posted @ 2021-07-16 23:16 mushishi
阅读(241)
评论(0)
推荐(0)
下一页
公告