使用Spring配置動態(tài)數(shù)據(jù)源實(shí)現(xiàn)讀寫分離

總體思路如下:

  1. 使用AOP
    使用AOP代理對service方法攔截。可以定義一個切面(aspect),包含切點(diǎn)(pointcut)和增強(qiáng)(advice)。
  2. 數(shù)據(jù)源信息值為多少?放在那里?
    數(shù)據(jù)源的信息根據(jù)訪問的service的名字得出,僅有查詢使用slave數(shù)據(jù)源,否則使用master數(shù)據(jù)源。數(shù)據(jù)源的信息設(shè)置在ThreadLocal變量中。
  3. 數(shù)據(jù)源如何路由
    實(shí)現(xiàn)AbstractRoutingDataSourcedetermineCurrentLookupKey進(jìn)行數(shù)據(jù)源選擇。

具體細(xì)節(jié)這篇文章寫得很清楚了,就不再贅述了。


當(dāng)然還需要對數(shù)據(jù)庫進(jìn)行MySQL主從復(fù)制(BinaryLog)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容