正文前先來一波福利推薦:
福利一:
百萬年薪架構師視頻,該視頻可以學到很多東西,是本人花錢買的VIP課程,學習消化了一年,為了支持一下女朋友公眾號也方便大家學習,共享給大家。
福利二:
畢業答辯以及工作上各種答辯,平時積累了不少精品PPT,現在共享給大家,大大小小加起來有幾千套,總有適合你的一款,很多是網上是下載不到。
獲取方式:
微信關注 精品3分鍾 ,id為 jingpin3mins,關注后回復 百萬年薪架構師 ,精品收藏PPT 獲取雲盤鏈接,謝謝大家支持!
-----------------------正文開始---------------------------
最近學習了關於使用MySql數據的實現主動結構的原理,在以前的並發訪問低的場景一下,一般一台性能高的服務器作為一個MySql數據,就可以滿足業務的增刪改查場景,但是隨着網絡用戶的增加
當出現高並發,高QPS的情況下,一台MySql就很難支撐這種場景了,根據現在的分布式處理架構,處理在使用Redis這種高效的緩存數據庫外,其實也可以針對數據庫端進行分布式處理,也就是原來
和Redis相同,使用分布式主從架構,通過Master 和 Slave 實現讀寫分析,數據采用主從復制的原理,這種采用讀寫分析,同時讀的Slave機器可以多台配置的架構,極大了增加的后台的穩定性和滿足
高並發的情景;
下面進行原理分析:
配置的簡要過程說明:
Mysql的配置文件【在Spring中進行設置】
數據源的配置:
Master數據源:
Slave數據源:
源代碼的可以采用基於自定義注解的方式實現:
1、使用一個選擇類,用來配置選擇方式;
系統的配置需要采用一個路由配置:
在spring中注冊數據源【通過master和slave關鍵字匹配對應的數據源】:
采用注解的方式實現在Mapper接口上通過注解就可以實現自動匹配,效果如下:
自定義注解的實現:使用Aspectj的代理模式 AOP原理:
把注解匹配到具體實現:
Spring中配置注冊:
配置完成!