真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

分庫(kù)分表中間件sharding-jdbc的使用

數(shù)據(jù)分片產(chǎn)生的背景,可以查看https://shardingsphere.apache.org/document/current/cn/features/sharding/,包括了垂直拆分和水平拆分的概念.還有這個(gè)框架的目標(biāo)是什么,都寫得很清楚

創(chuàng)新互聯(lián)主營(yíng)全椒網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP軟件開(kāi)發(fā),全椒h5小程序開(kāi)發(fā)搭建,全椒網(wǎng)站營(yíng)銷推廣歡迎全椒等地區(qū)企業(yè)咨詢

Sharding-JDBC與MyCat:

解決分庫(kù)分表的中間件.
但是定位不同,Sharding-JDBC定位是輕量級(jí)Java框架,以jar包的方式提供服務(wù),未使用中間件,使用代碼連接庫(kù).MyCat相當(dāng)于代理,MyCat相當(dāng)于數(shù)據(jù)庫(kù),直接訪問(wèn)MyCat就可以,不需要關(guān)系庫(kù)和表,MyCat自動(dòng)處理,但是需要維護(hù)MyCat,性能會(huì)有損耗.
Sharding-JDBC(1.x):
github地址: https://github.com/apache/incubator-shardingsphere/releases
官網(wǎng): https://shardingsphere.incubator.apache.org/
文檔: https://shardingsphere.apache.org/document/current/en/overview/
分庫(kù)分表中間件sharding-jdbc的使用
使用Sharding-JDBC進(jìn)行讀寫分離實(shí)戰(zhàn)

在數(shù)據(jù)庫(kù)的操作中,寫操作是非常耗時(shí)的,而最常用的是讀操作,讀寫分離的目的是避免數(shù)據(jù)庫(kù)的寫操作影響讀操作的效率.最重要的目的還是減少數(shù)據(jù)庫(kù)的壓力,提高性能.

這只是模仿讀寫分析實(shí)戰(zhàn),流程是創(chuàng)建兩個(gè)數(shù)據(jù)庫(kù),配置兩個(gè)數(shù)據(jù)源,一個(gè)是主表,一個(gè)是從表,寫修改刪除在主表,查詢是在從表.

創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)句:
分庫(kù)分表中間件sharding-jdbc的使用
創(chuàng)建項(xiàng)目,引入依賴
分庫(kù)分表中間件sharding-jdbc的使用
配置文件的編寫(使用xml的方式來(lái)實(shí)現(xiàn)):
分庫(kù)分表中間件sharding-jdbc的使用
編寫model,service,controller
分庫(kù)分表中間件sharding-jdbc的使用分庫(kù)分表中間件sharding-jdbc的使用
啟動(dòng)類:
分庫(kù)分表中間件sharding-jdbc的使用
在查詢前使用這句可以指定從主庫(kù)中進(jìn)行讀取數(shù)據(jù).

分片算法參考:
https://blog.csdn.net/gjx8010/article/details/72542207#1-%E5%88%86%E7%89%87%E6%9E%9A%E4%B8%BE

分片枚舉: 通過(guò)在配置文件中配置可能的枚舉id,自己配置分片。 這種規(guī)則適用于特定的場(chǎng)景,比如有些業(yè)務(wù)需要按照省份或區(qū)縣來(lái)做保存,而全國(guó)的省份區(qū)縣固定的,這類業(yè)務(wù)使用這一規(guī)則。
范圍約定: 此分片適用于提前規(guī)劃好分片字段某個(gè)范圍屬于哪個(gè)分片. 這個(gè)接觸過(guò),就是比如說(shuō)id在1~10000的在一張表,10001~20000在另一張表.
取模: 比如說(shuō)兩張表,奇數(shù)存一張表,偶數(shù)存一張表.
按日期進(jìn)行分片: 比如說(shuō)一天一張表,或者一個(gè)月一張表(這個(gè)一般是看業(yè)務(wù)需求).
還有很多,不過(guò)我覺(jué)得我比較喜歡的就這幾個(gè),Hash的也很常用,只是我沒(méi)有用過(guò).真正用過(guò)的就是范圍約定了.

分庫(kù)分表

分庫(kù)分表就是表面上的意思,將一個(gè)庫(kù)分為多個(gè)庫(kù),講一個(gè)表分為多個(gè)表.

單庫(kù)分表
在前一個(gè)項(xiàng)目上進(jìn)行修改
首先創(chuàng)建數(shù)據(jù)庫(kù)ds_03,在數(shù)據(jù)庫(kù)中創(chuàng)建4張表
分庫(kù)分表中間件sharding-jdbc的使用
重新創(chuàng)建xml文件sharding-table.xml:
分庫(kù)分表中間件sharding-jdbc的使用
上面在使用分表的時(shí)候使用的是inline表達(dá)式.還有一種自定義表達(dá)式,上面是注釋掉的,使用的是類來(lái)進(jìn)行分表,但是我測(cè)試過(guò)程一直是類型轉(zhuǎn)換異常,Integer轉(zhuǎn)不成Long,這個(gè)錯(cuò)誤清除,不知道發(fā)生在哪,因?yàn)橹?就不仔細(xì)研究了,下面把自定義表達(dá)式的類貼出來(lái),有興趣的可以試試.
分庫(kù)分表中間件sharding-jdbc的使用
編寫controller
分庫(kù)分表中間件sharding-jdbc的使用
分庫(kù)分表
前面說(shuō)了單庫(kù)分表,那分庫(kù)分表呢?一樣的實(shí)現(xiàn).

創(chuàng)建數(shù)據(jù)庫(kù)和表
分庫(kù)分表中間件sharding-jdbc的使用
創(chuàng)建sharding-db-table.xml
分庫(kù)分表中間件sharding-jdbc的使用
分庫(kù)分表中間件sharding-jdbc的使用
添加數(shù)據(jù)庫(kù)的分庫(kù)策略
分庫(kù)分表中間件sharding-jdbc的使用
修改controller中的saves方法,進(jìn)行測(cè)試:
分庫(kù)分表中間件sharding-jdbc的使用
分布式主鍵的使用
為了保證插入的主鍵不重復(fù),所以使用分布式主鍵,其實(shí)在前面的xml中已經(jīng)添加了實(shí)現(xiàn),接下來(lái)只要修改saves方法和save方法的實(shí)現(xiàn)就可以,也就是不給id賦值,并且插入的時(shí)候不給id字段,不過(guò)我在實(shí)踐過(guò)程中發(fā)現(xiàn)生成的id全是偶數(shù),不知道是不是偶然,如果不是,那么就需要重新找算法或者重新寫分配策略了.
歡迎工作一到五年的Java工程師朋友們加入Java高級(jí)互聯(lián)網(wǎng)架構(gòu):957734884,歡迎加入我們,給你意想不到的驚喜。


當(dāng)前題目:分庫(kù)分表中間件sharding-jdbc的使用
URL分享:http://weahome.cn/article/ipijei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部