
正確方法名isConnectionAlive(),
錯誤方法名isConnectionActive()。
博主使用了 手寫,導致錯誤。充分證明是手把手寫的,辛苦。多謝
當我們要操作一批key時,可以通過 redis pipline 再執行完后一次性讀取所有結果來較少網絡傳輸的消耗; 很明顯,這有個限制條件 => 這批key的執行必須在同一個...
通常我們用redis做接口緩存后,查詢接口的性能就能提升到ms級別;但是redis是純內存操作啊,總不至于要到ms吧,根據官方的 benchmark[https://redi...
現象 idea版本: IntelliJ IDEA 2021.1.1 (Ultimate Edition)Build #IU-211.7142.45, built on Apr...
如果數據庫連接首次建立失敗,會怎么樣? SingleDataSource#initDataSourceOrigin -> this.dataSourcePool.build ...
之所以要進行流量控制,是要避免業務應用流出量傾斜,超過分庫能承載的壓力 zebra的限流架構 粒度 指定要保護的db節點 指定要流控的應用ip 指定sqlId, 計算規則: ...
sql語句: 比如這種常見的 insert 后要獲取自增主鍵值的, 需要在同一個連接同一個statement操作 如先 Statement#executeUpdate("in...
一、 JdbcFilter 過濾器 zebra 定義了 JdbcFilter 過濾器, 它包含的方法覆蓋了 zebra 執行生命周期的各個環節(如各層數據源的初始化/刷新、分...
TableShardRule#eval 根據路由規則解析sql的時候如果沒匹配找到分片鍵的值 如果是 insert 或 replace 語句,必須提供分片鍵的值,不然直接報錯...
zebra 解析sql使用的阿里druid連接池內部的 ast解析器 SQLParser#parseInternal(SQLStatement stmt) 解析sql 語句的...
SingleDataSource 對應 GroupDataSource 主庫節點 或一個從庫節點 由于它是對應的是實際的db節點,直接和底層數據庫連接池打交道; zebra ...
GroupDataSource的物理結構 負載均衡的對象 zebra的負載均衡是在GroupDataSource的讀庫 readDataSource( LoadBalance...
在初始化 GroupDataSource 的時候,會往它的配置管理器 DefaultDataSourceConfigManager中添加了一個配置監聽器 代碼路徑:Group...
假設分庫分表情況如下 分庫 id0:分表 test_0 、 test_1 分庫 id1: 分表 test_2、 test_3 sql語句: select test....
前面 分組數據源GroupDataSource及其初始化[http://www.lxweimin.com/p/90d2949e70d7] 已經知道 GroupDataSour...
GroupDataSource 負責一組 db節點,包含多個SingleDataSource, 將它們分為一個主和多個從進行讀寫分離和多個從庫的負載均衡; 對應db部署架構的...
主要過程包括: 分庫分表的路由定位 sql語句的 ast 抽象語法樹的解析 通過自定義 SQLASTVisitor (MySQLSelectASTVisitor) 遍歷sql...
ShardDataSource 間接實現了 jdbc api 的 DataSource 接口 它持有多個GroupDataSource,存于 dataSourcePool 的...
最上層 ShardDataSource: 用于分庫分表; 包含一個或多個 GroupDataSrouce GroupDataSource: 主要用于讀寫分離, 分庫中的一個s...