最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Sharding-Jdbc如何配置主從讀寫分離模式

 更新時間:2025年03月06日 10:42:39   作者:帥氣的人123  
文章介紹了如何使用Sharding-JDBC實現(xiàn)MySQL的讀寫分離,通過配置主從數(shù)據(jù)源和讀寫分離策略,可以在項目中實現(xiàn)高效的數(shù)據(jù)庫讀寫操作,同時,文章還提到解決MySQL連接異常的一個常見方法

Sharding-Jdbc 配置主從模式

我們項目的讀寫分離的主從模式項目中一般可以分為多種方式來實現(xiàn),可以手動在代碼 Java 中配置多種數(shù)據(jù)源來實現(xiàn)讀寫分離的模式,我們也可以通過第三方的框架來實現(xiàn)讀寫分離例如我們的 Sharding-jdbc,也可以是我們的MyCat的來實現(xiàn)讀寫分離。

  1. Java 代碼的方式配置多種數(shù)據(jù)源
  2. Sharding-Jdbc
  3. MyCat

今天我們就來講解一下如何使用 Sharding-jdbc 來實現(xiàn)讀寫分離。

使用 YMAL 方式來實現(xiàn)配置。

配置 master 數(shù)據(jù)源和 slave 數(shù)據(jù)源。我們這次是的方案是一主多從的方式來實現(xiàn)讀寫分離,mysql 的主從搭建我們這次就不說了。

我們這次就是主要來實現(xiàn) sharding-jdbc 的方式來實現(xiàn)讀寫分離

Sharding-jdbc 讀寫分離配置

我們首先要引入 MAVEN 依賴

<dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
    <version>5.1.1</version>
</dependency>

我們這次使用的版本是比較新的版本。

配置數(shù)據(jù)源以及數(shù)據(jù)源的名字

spring:
  shardingsphere:
  	# 內(nèi)存模式
    mode:
      type: Memory
    # 數(shù)據(jù)源配置
    datasource:
      names: master,slave
      # 主數(shù)據(jù)源
      master:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.jc.mysql.Driver
        jdbc-url: jdbc:mysql://localhost:3306/shardingjdbc?allowPublicKeyRetrieval=true
        username: root
        password: 123456
      # 從機數(shù)據(jù)源
      slave:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.jc.mysql.Driver
        jdbc-url: jdbc:mysql://localhost:3306/shardingjdbc?allowPublicKeyRetrieval=true
        username: root
        password: 123456

主要是配置數(shù)據(jù)源的鏈接地址和賬戶以及密碼。

讀寫分離的策略

spring:
  shardingsphere:
    rules:
      readwrite-splitting:
        data-sources:
          mydatasource:
          	# 類型是靜態(tài)還是動態(tài)
            type: Static
            props:
              # 寫入數(shù)據(jù)
              write-data-source-name: master
              # 讀數(shù)據(jù)
              read-data-source-names: slave
            # 使用的邏輯策略
            load-balancer-name: round-alg
        # 負載均衡策略
        load-balancers:
        	# 輪詢
            round-alg:
              type: ROUND_ROBIN

這里的是配置寫數(shù)據(jù)和讀數(shù)據(jù)使用的數(shù)據(jù)源

完整配置

spring:
  shardingsphere:
    mode:
      type: Memory
    # 數(shù)據(jù)源配置
    datasource:
      names: master,slave
      # 主數(shù)據(jù)源
      master:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.jc.mysql.Driver
        jdbc-url: jdbc:mysql://localhost:3306/shardingjdbc?allowPublicKeyRetrieval=true
        username: root
        password: 123456
      # 從機數(shù)據(jù)源
      slave:
        type: com.zaxxer.hikari.HikariDataSource
        driver-class-name: com.jc.mysql.Driver
        jdbc-url: jdbc:mysql://localhost:3306/shardingjdbc?allowPublicKeyRetrieval=true
        username: root
        password: 123456
    rules:
      readwrite-splitting:
        data-sources:
          mydatasource:
          	# 類型是靜態(tài)還是動態(tài)
            type: Static
            props:
              write-data-source-name: master
              read-data-source-names: slave
            # 使用的邏輯策略
            load-balancer-name: round-alg
        # 負載均衡策略
        load-balancers:
        	# 輪詢
            round-alg:
              type: ROUND_ROBIN
            # 隨機
            random-alg:
              type: RANDOM
            # 權(quán)重,我們在配置權(quán)重的時候必須配置各個 slave 的權(quán)重值,值的數(shù)據(jù)類型為 double
            weight-alg:
              type: WEIGHT
              props:
                slave: 1.0

    props:
      show-sql: true

結(jié)束!

中間我在啟動的時候遇到一個 mysql連接異常

Public Key Retrieval is not allowed

這種情況可以配置參數(shù)的時候設(shè)置連接參數(shù) ?allowPublicKeyRetrieval=true

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中的鎖與鎖的狀態(tài)升級詳細解讀

    Java中的鎖與鎖的狀態(tài)升級詳細解讀

    這篇文章主要介紹了Java中的鎖與鎖的狀態(tài)升級詳細解讀,Java 1.6以后官方針對鎖的優(yōu)化,主要是增加了兩種新的鎖:偏向鎖和輕量級鎖,再加上本身重量級鎖,那么鎖基本上可以大致分為這三種,它們之間的區(qū)別主要是體現(xiàn)在等待時間上面,需要的朋友可以參考下
    2024-01-01
  • Spring?cache源碼深度解析

    Spring?cache源碼深度解析

    緩存用于提升系統(tǒng)的性能,特別適用于一些對資源需求比較高的操作,下面這篇文章主要給大家介紹了關(guān)于Spring?cache源碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • 基于SpringBoot項目實現(xiàn)Docker容器化部署的主要步驟

    基于SpringBoot項目實現(xiàn)Docker容器化部署的主要步驟

    部署SpringBoot項目到Docker容器涉及選擇Java運行時環(huán)境的基礎(chǔ)鏡像、構(gòu)建包含應(yīng)用程序的Docker鏡像、編寫Dockerfile、使用docker build命令構(gòu)建鏡像和使用docker run命令運行Docker容器等步驟
    2024-10-10
  • Java多線程間的5種通信方式小結(jié)

    Java多線程間的5種通信方式小結(jié)

    有兩個線程,A 線程向一個集合里面依次添加元素“abc”字符串,一共添加十次,當添加到第五次的時候,希望 B 線程能夠收到 A 線程的通知,然后 B 線程執(zhí)行相關(guān)的業(yè)務(wù)操作,本文介紹的5種通信方式都是基本這兩種模型來實現(xiàn)的,需要的朋友可以參考下
    2023-10-10
  • Spark Streaming編程初級實踐詳解

    Spark Streaming編程初級實踐詳解

    這篇文章主要為大家介紹了Spark Streaming編程初級實踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Java基本數(shù)據(jù)類型與封裝類型詳解(int和Integer區(qū)別)

    Java基本數(shù)據(jù)類型與封裝類型詳解(int和Integer區(qū)別)

    這篇文章主要介紹了Java基本數(shù)據(jù)類型與封裝類型詳解(int和Integer區(qū)別) ,需要的朋友可以參考下
    2017-02-02
  • 解決@ServerEndpoint不能注入@Autowired的問題

    解決@ServerEndpoint不能注入@Autowired的問題

    這篇文章主要介紹了解決@ServerEndpoint不能注入@Autowired的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java基礎(chǔ)之super關(guān)鍵字淺析

    Java基礎(chǔ)之super關(guān)鍵字淺析

    java中的super關(guān)鍵字是一個引用變量,用于引用直接父類對象,下面這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)之super關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • java小程序之控制臺字符動畫的實現(xiàn)

    java小程序之控制臺字符動畫的實現(xiàn)

    這篇文章主要給大家介紹了java小程序之控制臺字符動畫實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • SpringBoot配置文件中密碼屬性加密的實現(xiàn)

    SpringBoot配置文件中密碼屬性加密的實現(xiàn)

    本文主要介紹了SpringBoot配置文件中密碼屬性加密的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評論

兴宁市| 宜阳县| 潞城市| 城步| 麻江县| 中牟县| 长武县| 漳平市| 武威市| 莲花县| 耿马| 军事| 昌黎县| 都兰县| 紫阳县| 汽车| 柯坪县| 临潭县| 廊坊市| 乳源| 西平县| 河间市| 仙居县| 乌恰县| 工布江达县| 昆山市| 阳西县| 历史| 徐汇区| 南乐县| 西林县| 青海省| 齐齐哈尔市| 永德县| 旺苍县| 井研县| 益阳市| 尚志市| 武胜县| 响水县| 绥中县|