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