摘要: 原創(chuàng)出處:www.bysocket.com 泥瓦匠BYSocket 希望轉(zhuǎn)載,保留摘要,謝謝!
“清醒時做事,糊涂時跑步,大怒時睡覺,獨處時思考”
本文提綱
一、多數(shù)據(jù)源的應用場景
二、運行 springboot-mybatis-mutil-datasource 工程案例
三、springboot-mybatis-mutil-datasource 工程代碼配置詳解
一、多數(shù)據(jù)源的應用場景
目前,業(yè)界流行的數(shù)據(jù)操作框架是 Mybatis,那 Druid 是什么呢?
Druid 是 Java 的數(shù)據(jù)庫連接池組件。Druid 能夠提供強大的監(jiān)控和擴展功能。比如可以監(jiān)控 SQL ,在監(jiān)控業(yè)務可以查詢慢查詢 SQL 列表等。Druid 核心主要包括三部分:
1. DruidDriver 代理 Driver,能夠提供基于 Filter-Chain 模式的插件體系。
2. DruidDataSource 高效可管理的數(shù)據(jù)庫連接池
3. SQLParser
當業(yè)務數(shù)據(jù)量達到了一定程度,DBA 需要合理配置數(shù)據(jù)庫資源。即配置主庫的機器高配置,把核心高頻的數(shù)據(jù)放在主庫上;把次要的數(shù)據(jù)放在從庫,低配置。開源節(jié)流嘛,就這個意思。把數(shù)據(jù)放在不同的數(shù)據(jù)庫里,就需要通過不同的數(shù)據(jù)源進行操作數(shù)據(jù)。這里我們舉個 springboot-mybatis-mutil-datasource 工程案例:
user 用戶表在主庫 master 上,地址表 city 在從庫 cluster 上。下面實現(xiàn)獲取 根據(jù)用戶名獲取用戶信息,包括從庫的地址信息 REST API,那么需要從主庫和從庫中分別獲取數(shù)據(jù),并在業(yè)務邏輯層組裝返回。邏輯如圖: