cobarclient 源碼分析

cobarclient 要解決什么問題?

互聯網架構中很多情況下使用的是spring+ibatis的架構,實際中使用spring提供的模板sqlmapClientTemplate來進行數據庫的CRUD操作,,隨著互聯網企業越來越多的數據,在數據庫容量規劃設計的時候會考慮按照業務來進行垂直拆分數據庫,或者水平來拆分表,主要是考慮到了數據庫容量規劃和IO性能等,那么問題來了, sqlmapClientTemplate只能處理單數據源的問題,對于多數據源無能為力,于是alibaba就搞出來這么一個玩意,主要為了實現

1.多數據源之間路由查找
2.多數據源事務管理

基本原理是什么?

corbarclient 2.2版本使用的模板是MysdalSqlMapClientTemplate, 繼承了sqlmapClientTemplate,只是簡單的對sqlmapClientTemplate的功能進行增強,他內部為每一個數據源新建一個對應的sqlmapClientTemplate,并且持有一個路由Router來根據sqlmapId、shardingExpression來決定使用哪個shard

事務管理

cobarclient為了考慮性能,并沒有采取XA事務的兩段式提交,它使用的是一段式提交(Best efforts 1pc pattern)

參考文檔:http://afoo.me/references/cobarclient/zh/index.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容