Spring Boot中整合Sharding-JDBC讀寫分離示例
在我《Spring Cloud微服務-全棧技術與案例解析》書中,第18章節分庫分表解決方案裡有對Sharding-JDBC的使用進行詳細的講解。
之前是通過XML方式來配置資料來源,讀寫分離策略,分庫分表策略等,之前有朋友也問過我,有沒有Spring Boot的方式來配置,既然已經用Spring Boot還用XML來配置感覺有點不協調。
其實吧我個人覺得只要能用,方便看,看的懂就行了,mybatis的SQL不也是寫在XML中嘛。
今天就給大家介紹下Spring Boot方式的使用,主要講解讀寫分離的配置,其餘的後面再介紹。
所謂的Spring Boot方式就是直接可以通過屬性檔案或者YAML檔案來配置上面我們提到的那些資訊。
主要還是用shardingjdbc提供的starter,配置如下:
<dependency>
<groupId>io.shardingjdbc</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>2.0.0.M3</version>
</dependency>
配置內容如下:
server.port=8084
mybatis.config-location=classpath:META-INF/mybatis-config.xml
sharding.jdbc.datasource.names=ds_master,ds_slave
# 主資料來源
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
# 從資料來源
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。實現類有RandomMasterSlaveLoadBalanceAlgorithm和RoundRobinMasterSlaveLoadBalanceAlgorithm。sharding.jdbc.config.masterslave.master-data-source-name
主資料來源名稱- sharding.jdbc.config.masterslave.slave-data-source-names
從資料來源名稱,多個用逗號隔開
就是這麼簡單,整個流程結束,下面就是寫程式碼測試讀寫分離的效果了,我這邊用的mybatis,程式碼在我的Github上,文章中就不貼出來了,大家都會。
相關推薦
Spring Boot中整合Sharding-JDBC讀寫分離示例
在我《Spring Cloud微服務-全棧技術與案例解析》書中,第18章節分庫分表解決方案裡有對Sharding-JDBC的使用進行詳細的講解。 之前是通過XML方式來配置資料來源,讀寫分離策略,分庫分表策略等,之前有朋友也問過我,有沒有Spring Boot
sharding-jdbc讀寫分離
分庫分表 遲早會用到,有空學學瞭解先。 參考:http://shardingsphere.io/document/current/cn/overview/ 當前demo,普通Java格式,沒有spring或springboot整合。。。後期加入。。。 -------------------------
sharding-jdbc讀寫分離的使用詳解
一、不使用Spring 1、引入Maven依賴 <dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-jdbc-core</a
Spring Boot教程十:資料庫讀寫分離
文章實現一主兩從的續寫分離:工程目錄首先pom檔案<!--排除預設日誌框架--> <dependency> <groupId>org.springframework.boot</groupId> <artifa
Sharding-JDBC 讀寫分離
環境概覽 框架 版本號 Spring Boot 1.5.12.RELEASE Sharding-JDBC 2.0.3 MyBatis-Plus 2.2.0 前言介紹 Sharding-JDBC是噹噹網的一個開源專案,只需引入jar即
Sharding-JDBC讀寫分離探祕
前段時間寫了篇如何使用Sharding-JDBC進行分庫分表的例子,相信能夠感受到Sharding-JDBC的強大了,而且使用配置都非常乾淨。官方支援的功能還包括讀寫分離、分散式主鍵、強制路由等。這裡再介紹下如何在分庫分表的基礎上整合讀寫分離的功能。 讀寫分離
SpringBoot使用Sharding-JDBC讀寫分離
pen jpa 開啟 源碼 onf sele random fault pin 摘要: 本文介紹SpringBoot使用當當Sharding-JDBC進行讀寫分離。 1.有關Sharding-JDBC 本文還是基於當當網Sharding-Jdbc的依賴,與上一篇使用Shar
SpringBoot2.0學習筆記:(十) Spring Boot中整合Redis
一、關於Lettuce 關於在SpringBoot2.0.x版本中整合Redis,我們先看一下官方的遷移文件有什麼說的: Spring Boot2.0遷移指南 當你使用spring-boot-starter-redis的時候,Lettuce現已取代Jedis作為Redis驅動
新手入門教程-------Spring Boot中整合RabbitMQ
AMQP:是Advanced Message Queuing Protocol的簡稱,高階訊息佇列協議,是一個面向訊息中介軟體的開放式標準應用層協議。 定義了以下特性: 訊息方向 訊息佇列 訊息路由(包括:點到點和釋出-訂閱模式) 可靠性 安全
SpringBoot2.0學習筆記:(九) Spring Boot中整合Mybatis與Druid
一、專案的搭建 Druid對Spring boot做了很好的適配,所有的工作都只需要在配置檔案中完成。 具體的Druid在Spring Boot中的配置可以看:GitHub文件 首先看一下專案引入的jar包: <dependencies> &
十九、Spring boot中整合mybatis-generator自動生成程式碼
(一)新增外掛 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugi
Spring Boot中整合使用wagger2
Spring Boot中整合使用Swagger2構建RESTful APIs 在之前建立的入門級SpringBoot專案新增swagger2生產介面文件 pom檔案中匯入swagger2的jar包 建立swagger2配置類 其實這個配置類,只要
在Spring Boot中整合Spring Security並自定義驗證程式碼
最終效果 1、實現頁面訪問許可權限制 2、使用者角色區分,並按照角色區分頁面許可權 3、實現在資料庫中儲存使用者資訊以及角色資訊 4、自定義驗證程式碼 效果如下: 1、免驗證頁面 2、登陸頁面 在使用者未登入時,訪問任意有
RabbitMq在spring boot中整合和應用
具體如果安裝rabbitmq在本例子中不涉及,主要講解在springboot中如果傳送和接收rabbitmq訊息。 1.新增依賴 <dependency> <groupId>org.springframewor
Spring配置動態數據源-讀寫分離和多數據源
brush ride 常開 resolve ttr 表達 customer 事務管理 cda 在現在互聯網系統中,隨著用戶量的增長,單數據源通常無法滿足系統的負載要求。因此為了解決用戶量增長帶來的壓力,在數據庫層面會采用讀寫分離技術和數據庫拆分等技術。讀寫分離就是就是一
Spring動態數據源實現讀寫分離
character count 方法 cdata mas ebe aso nds evict 一、創建基於ThreadLocal的動態數據源容器,保證數據源的線程安全性 package com.bounter.mybatis.extension; /** * 基
Spring+MyBatis實現數據庫讀寫分離方案
enabled nco put cdata nproxy log4j equals end aso 方案1通過MyBatis配置文件創建讀寫分離兩個DataSource,每個SqlSessionFactoryBean對象的mapperLocations屬性制定兩個讀寫數據源
spring+springmvc+mybatis+maven+mysql 資料庫讀寫分離
spring+springmvc+mybatis+maven+mysql資料庫讀寫分離 一、Spring+Springmvc+Mybatis+Maven建立Web專案 二、使用Spring AOP實現MySQL資料庫讀寫分離 2.1 前言
06-專案中部署redis的讀寫分離架構
一主一從,往主節點去寫,在從節點去讀,可以讀到,主從架構就搭建成功了 1、啟用複製,部署slave node wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar -xzv
SpringBoot 整合 MyCat 實現讀寫分離
MyCat一個徹底開源的,面向企業應用開發的大資料庫叢集。基於阿里開源的Cobar產品而研發。能滿足資料庫資料大量儲存;提高了查詢效能。文章介紹如何實現MyCat連線MySQL實現主從分離,並整合SpringBoot實現讀寫分離。 MySQL配置主從關係 說明 192.168.0.105 Linux 資料庫