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

SpringBoot詳解如何實(shí)現(xiàn)讀寫(xiě)分離

 更新時(shí)間:2022年05月16日 09:40:09   作者:StrugglingXuYang  
當(dāng)響應(yīng)的瓶頸在數(shù)據(jù)庫(kù)的時(shí)候,就要考慮數(shù)據(jù)庫(kù)的讀寫(xiě)分離,當(dāng)然還可以分庫(kù)分表,那是單表數(shù)據(jù)量特別大,當(dāng)單表數(shù)據(jù)量不是特別大,但是請(qǐng)求量比較大的時(shí)候,就要考慮讀寫(xiě)分離了.具體的話(huà),還是要看自己的業(yè)務(wù)...如果還是很慢,那就要分庫(kù)分表了...我們這篇就簡(jiǎn)單講一下讀寫(xiě)分離

前言

根據(jù)公司業(yè)務(wù)需求,項(xiàng)目需要讀寫(xiě)分離,所以記錄下讀寫(xiě)分離的過(guò)程。

分為兩個(gè)部分:

1.項(xiàng)目的讀寫(xiě)分離。

2.mysql數(shù)據(jù)庫(kù)的主從復(fù)制。

本篇使用的依賴(lài)包為sharding-jdbc-spring-boot-starter,也有考慮直接用dynamic-datasource-spring-boot-starter,但是需要在程序中顯式的聲明所指定的數(shù)據(jù)源,并且在從庫(kù)>=2 的時(shí)候需要自己寫(xiě)算法進(jìn)行讀庫(kù)的選擇。而sharding-jdbc支持讀庫(kù)的負(fù)載均衡策略,sharding會(huì)根據(jù)語(yǔ)句的關(guān)鍵字來(lái)決定是讀操作還是寫(xiě)操作

Insert選擇主庫(kù)

Select選擇從庫(kù)2(由于設(shè)置的了輪詢(xún),所以下一次就是從庫(kù)1)

1.項(xiàng)目引入依賴(lài)

	<dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
            <version>4.0.0-RC1</version>
        </dependency>

2.yml配置

共有三臺(tái)機(jī)器,

主庫(kù)一臺(tái)(127.0.0.1)

從庫(kù)兩臺(tái)(192.168.1.5 192.168.1.6)

spring:
  shardingsphere:
    props:
      sql:
        show: false
    sharding:
      default-data-source-name: master
    masterslave:
      name: ms
      master-data-source-name: master
      slave-data-source-names: slave1,slave2
      #配置slave節(jié)點(diǎn)的負(fù)載均衡均衡策略,采用輪詢(xún)機(jī)制
      load-balance-algorithm-type: round_robin
    datasource:
      names: master,slave1,slave2
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/life_account_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
        username: root
        password: root
        maxPoolSize: 100
        minPoolSize: 5
      slave1:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.1.5:3306/life_account_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
        username: test
        password: Houxuyang123!@#
        maxPoolSize: 100
        minPoolSize: 5
      slave2:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.1.6:3306/life_account_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
        username: test
        password: Houxuyang123!@#
        maxPoolSize: 100
        minPoolSize: 5

3.啟動(dòng)

4.測(cè)試

第一次讀數(shù)據(jù)(從庫(kù)1)

第二次讀數(shù)據(jù)(從庫(kù)2)

主庫(kù)寫(xiě)

項(xiàng)目讀寫(xiě)分離基本實(shí)現(xiàn)。

5.中間所遇到的問(wèn)題

mysql查詢(xún)問(wèn)題

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'life_account_db.acc_order.serial_no' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

原因:

沒(méi)有遵循原則的sql會(huì)被認(rèn)為是不合法的sql

1.order by后面的列必須是在select后面存在的

2.select、having或order by后面存在的非聚合列必須全部在group by中存在

解決方法:

修改配置文件:vim /etc/my.cnf

添加:sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

重啟mysql:systemctl restart mysqld

:wq

到此這篇關(guān)于SpringBoot詳解如何實(shí)現(xiàn)讀寫(xiě)分離的文章就介紹到這了,更多相關(guān)SpringBoot讀寫(xiě)分離內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot訪(fǎng)問(wèn)windows共享文件的方法

    SpringBoot訪(fǎng)問(wèn)windows共享文件的方法

    這篇文章主要介紹了SpringBoot訪(fǎng)問(wèn)windows共享文件,項(xiàng)目使用minio存儲(chǔ)且不在同一臺(tái)服務(wù)器上,為了優(yōu)化速度決定使用windows共享功能進(jìn)行文件傳輸,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • java實(shí)現(xiàn)pdf文件截圖的方法【附PDFRenderer.jar下載】

    java實(shí)現(xiàn)pdf文件截圖的方法【附PDFRenderer.jar下載】

    這篇文章主要介紹了java實(shí)現(xiàn)pdf文件截圖的方法,結(jié)合實(shí)例形式分析了java基于PDFRenderer.jar進(jìn)行pdf文件截圖的相關(guān)操作技巧,并附帶PDFRenderer.jar文件供讀者下載使用,需要的朋友可以參考下
    2018-01-01
  • MyBatis生成UUID的實(shí)現(xiàn)

    MyBatis生成UUID的實(shí)現(xiàn)

    這篇文章主要介紹了MyBatis生成UUID的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java版學(xué)生管理系統(tǒng)

    Java版學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java版學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • java若依框架集成redis緩存詳解

    java若依框架集成redis緩存詳解

    今天小編就為大家分享一篇關(guān)于java若依框架集成redis緩存的實(shí)現(xiàn),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2021-08-08
  • SpringBoot使用CommandLineRunner接口完成資源初始化方式

    SpringBoot使用CommandLineRunner接口完成資源初始化方式

    這篇文章主要介紹了SpringBoot使用CommandLineRunner接口完成資源初始化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Springboot使用POI進(jìn)行excel文件的導(dǎo)出與下載方式

    Springboot使用POI進(jìn)行excel文件的導(dǎo)出與下載方式

    這篇文章主要介紹了Springboot使用POI進(jìn)行excel文件的導(dǎo)出與下載方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 圖解分析Javaweb進(jìn)程與線(xiàn)程

    圖解分析Javaweb進(jìn)程與線(xiàn)程

    這篇文章主要介紹了Javaweb進(jìn)程與線(xiàn)程的知識(shí),本篇文章通過(guò)簡(jiǎn)要的案例,講解了它的基礎(chǔ)原理與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2022-03-03
  • Spring學(xué)習(xí)筆記之bean的基礎(chǔ)知識(shí)

    Spring學(xué)習(xí)筆記之bean的基礎(chǔ)知識(shí)

    ean在Spring和SpringMVC中無(wú)所不在,將這個(gè)概念內(nèi)化很重要,所以下面這篇文章主要給大家介紹了關(guān)于Spring學(xué)習(xí)筆記之bean基礎(chǔ)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳解,需要的朋友可以參考下。
    2017-12-12
  • 基于java ssm springboot實(shí)現(xiàn)選課推薦交流平臺(tái)系統(tǒng)

    基于java ssm springboot實(shí)現(xiàn)選課推薦交流平臺(tái)系統(tǒng)

    這篇文章主要介紹了選課推薦交流平臺(tái)系統(tǒng)是基于java ssm springboot來(lái)的實(shí)現(xiàn)的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08

最新評(píng)論

广德县| 崇左市| 库车县| 邹平县| 桐城市| 荥经县| 武山县| 伊吾县| 嘉祥县| 依安县| 苗栗市| 五台县| 汝南县| 宁陵县| 简阳市| 茶陵县| 彰化县| 丽江市| 县级市| 平阴县| 东宁县| 新田县| 淮北市| 上犹县| 乌恰县| 汉川市| 厦门市| 南投县| 建水县| 荔波县| 潮州市| 牡丹江市| 保亭| 庄浪县| 延津县| 盐源县| 颍上县| 崇州市| 丰宁| 东乡县| 土默特右旗|