91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

分庫分表中間件sharding-jdbc的使用

發布時間:2020-07-07 22:27:02 來源:網絡 閱讀:1540 作者:kukelook 欄目:編程語言

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

Sharding-JDBC與MyCat:

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

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

這只是模仿讀寫分析實戰,流程是創建兩個數據庫,配置兩個數據源,一個是主表,一個是從表,寫修改刪除在主表,查詢是在從表.

創建數據庫的語句:
分庫分表中間件sharding-jdbc的使用
創建項目,引入依賴
分庫分表中間件sharding-jdbc的使用
配置文件的編寫(使用xml的方式來實現):
分庫分表中間件sharding-jdbc的使用
編寫model,service,controller
分庫分表中間件sharding-jdbc的使用分庫分表中間件sharding-jdbc的使用
啟動類:
分庫分表中間件sharding-jdbc的使用
在查詢前使用這句可以指定從主庫中進行讀取數據.

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

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

分庫分表

分庫分表就是表面上的意思,將一個庫分為多個庫,講一個表分為多個表.

單庫分表
在前一個項目上進行修改
首先創建數據庫ds_03,在數據庫中創建4張表
分庫分表中間件sharding-jdbc的使用
重新創建xml文件sharding-table.xml:
分庫分表中間件sharding-jdbc的使用
上面在使用分表的時候使用的是inline表達式.還有一種自定義表達式,上面是注釋掉的,使用的是類來進行分表,但是我測試過程一直是類型轉換異常,Integer轉不成Long,這個錯誤清除,不知道發生在哪,因為著急,就不仔細研究了,下面把自定義表達式的類貼出來,有興趣的可以試試.
分庫分表中間件sharding-jdbc的使用
編寫controller
分庫分表中間件sharding-jdbc的使用
分庫分表
前面說了單庫分表,那分庫分表呢?一樣的實現.

創建數據庫和表
分庫分表中間件sharding-jdbc的使用
創建sharding-db-table.xml
分庫分表中間件sharding-jdbc的使用
分庫分表中間件sharding-jdbc的使用
添加數據庫的分庫策略
分庫分表中間件sharding-jdbc的使用
修改controller中的saves方法,進行測試:
分庫分表中間件sharding-jdbc的使用
分布式主鍵的使用
為了保證插入的主鍵不重復,所以使用分布式主鍵,其實在前面的xml中已經添加了實現<rdb:generate-key-column column-name="id"/>,接下來只要修改saves方法和save方法的實現就可以,也就是不給id賦值,并且插入的時候不給id字段,不過我在實踐過程中發現生成的id全是偶數,不知道是不是偶然,如果不是,那么就需要重新找算法或者重新寫分配策略了.
歡迎工作一到五年的Java工程師朋友們加入Java高級互聯網架構:957734884,歡迎加入我們,給你意想不到的驚喜。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文水县| 镇安县| 海晏县| 通河县| 桦南县| 西乌| 恩平市| 平潭县| 盐山县| 巴塘县| 石楼县| 红安县| 彭州市| 仪征市| 渑池县| 钟祥市| 高州市| 安岳县| 邛崃市| 岑溪市| 琼结县| 天峻县| 台东县| 林芝县| 大新县| 安化县| 宁乡县| 白山市| 金塔县| 仁化县| 临西县| 安康市| 永安市| 墨江| 郑州市| 龙泉市| 色达县| 密山市| 楚雄市| 车险| 赣州市|