摘要:今天就給大家介紹下方式的使用,主要講解讀寫分離的配置,其余的后面再介紹。主要還是用提供的,配置如下配置內(nèi)容如下主數(shù)據(jù)源從數(shù)據(jù)源讀寫分離配置查詢時的負載均衡算法,目前有種算法,輪詢和隨機,算法接口是。
在我《Spring Cloud微服務(wù)-全棧技術(shù)與案例解析》書中,第18章節(jié)分庫分表解決方案里有對Sharding-JDBC的使用進行詳細的講解。
之前是通過XML方式來配置數(shù)據(jù)源,讀寫分離策略,分庫分表策略等,之前有朋友也問過我,有沒有Spring Boot的方式來配置,既然已經(jīng)用Spring Boot還用XML來配置感覺有點不協(xié)調(diào)。
其實吧我個人覺得只要能用,方便看,看的懂就行了,mybatis的SQL不也是寫在XML中嘛。
今天就給大家介紹下Spring Boot方式的使用,主要講解讀寫分離的配置,其余的后面再介紹。
所謂的Spring Boot方式就是直接可以通過屬性文件或者YAML文件來配置上面我們提到的那些信息。
主要還是用shardingjdbc提供的starter,配置如下:
io.shardingjdbc sharding-jdbc-spring-boot-starter 2.0.0.M3
配置內(nèi)容如下:
server.port=8084 mybatis.config-location=classpath:META-INF/mybatis-config.xml sharding.jdbc.datasource.names=ds_master,ds_slave # 主數(shù)據(jù)源 sharding.jdbc.datasource.ds_master.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds_master.driver-class-name=com.mysql.jdbc.Driver sharding.jdbc.datasource.ds_master.url=jdbc:mysql://localhost:3306/ds_0?characterEncoding=utf-8 sharding.jdbc.datasource.ds_master.username=root sharding.jdbc.datasource.ds_master.password=123456 # 從數(shù)據(jù)源 sharding.jdbc.datasource.ds_slave.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds_slave.driver-class-name=com.mysql.jdbc.Driver sharding.jdbc.datasource.ds_slave.url=jdbc:mysql://localhost:3306/ds_1?characterEncoding=utf-8 sharding.jdbc.datasource.ds_slave.username=root sharding.jdbc.datasource.ds_slave.password=123456 # 讀寫分離配置 sharding.jdbc.config.masterslave.load-balance-algorithm-type=round_robin sharding.jdbc.config.masterslave.name=dataSource sharding.jdbc.config.masterslave.master-data-source-name=ds_master sharding.jdbc.config.masterslave.slave-data-source-names=ds_slave
sharding.jdbc.config.masterslave.load-balance-algorithm-type
查詢時的負載均衡算法,目前有2種算法,round_robin(輪詢)和random(隨機),算法接口是io.shardingjdbc.core.api.algorithm.masterslave.MasterSlaveLoadBalanceAlgorithm。實現(xiàn)類有RandomMasterSlaveLoadBalanceAlgorithm和RoundRobinMasterSlaveLoadBalanceAlgorithm。
sharding.jdbc.config.masterslave.master-data-source-name
主數(shù)據(jù)源名稱
sharding.jdbc.config.masterslave.slave-data-source-names
從數(shù)據(jù)源名稱,多個用逗號隔開
就是這么簡單,整個流程結(jié)束,下面就是寫代碼測試讀寫分離的效果了,我這邊用的mybatis,代碼在我的Github上,文章中就不貼出來了,大家都會。
參考代碼:https://github.com/yinjihuan/...
歡迎加入我的知識星球,一起交流技術(shù),免費學習猿天地的課程(http://cxytiandi.com/course)文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/73633.html
摘要:本文是采用方式配置第二篇,第一篇是讀寫分離講解,請參考中整合讀寫分離示例在我微服務(wù)全棧技術(shù)與案例解析書中都是通過方式配置。多個表以逗號分隔,支持表達式。提供對語句中的和的分片操作支持。是必選的,用于處理和的分片。 本文是Sharding-JDBC采用Spring Boot Starter方式配置第二篇,第一篇是讀寫分離講解,請參考:《Spring Boot中整合Sharding-JDB...
摘要:實現(xiàn)數(shù)據(jù)庫分庫分表可以自己實現(xiàn),也可以使用和實現(xiàn)。分布式數(shù)據(jù)庫的自增不是自增的。分布式數(shù)據(jù)庫分頁查詢需要使用插入時間實現(xiàn)。包含分庫分片和讀寫分離功能。 Sharding-Jdbc實現(xiàn)mysql分庫分表 簡單介紹 數(shù)據(jù)庫分庫分表和讀寫分離區(qū)別,分庫分表是在多個庫建相同的表和同一個庫建不同的表,根據(jù)隨機或者哈希等方式查找實現(xiàn)。讀寫分離是為了解決數(shù)據(jù)庫的讀寫性能不足,使用主庫master進行...
摘要:比如使用的時候指定使用哪個環(huán)境的配置在微服務(wù)架構(gòu)下,服務(wù)的數(shù)量會比之前的單體應(yīng)用多,部署的節(jié)點數(shù)量也會很多。今天主要是講下在中如何對接進行配置管理。 問題背景 在實際工作中,我們的開發(fā)環(huán)境,測試環(huán)境,生產(chǎn)環(huán)境對應(yīng)的 Mysql 數(shù)據(jù)庫,Redis 這些信息都不一樣,每個環(huán)境都有對應(yīng)的一套配置,在 Spring Boot 中我們通常會編寫多個配置文件,也就是每個環(huán)境一個配置文件。 比如:...
摘要:松哥上學那會,很多人對有一些偏見,偏見主要集中在以下幾方面不支持事務(wù)事實上有表鎖,但是效率比較低存儲的數(shù)據(jù)量比較小,適合小項目,大項目還是得上等這么多年過去了,松哥自己在開發(fā)中一直是以為主,我覺得我有必要說兩句公道話了。 松哥上學那會,很多人對 MySQL 有一些偏見,偏見主要集中在以下幾方面: MySQL 不支持事務(wù)(事實上 MyISAM 有表鎖,但是效率比較低) MySQL 存儲...
閱讀 1332·2019-08-30 12:49
閱讀 3208·2019-08-28 18:14
閱讀 872·2019-08-26 11:38
閱讀 1738·2019-08-23 18:23
閱讀 2865·2019-08-23 17:04
閱讀 559·2019-08-23 16:52
閱讀 4109·2019-08-23 16:43
閱讀 2824·2019-08-23 16:12