<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      miketwais

      work up

      PostgreSQL HA cluster java端實現(xiàn)數(shù)據(jù)庫讀寫分離

      前面文章構(gòu)建了PostgreSQL HA集群,那問題來了:如何在Java程序端實現(xiàn)對數(shù)據(jù)庫的讀操作和寫操作分離?

      即:主庫負(fù)責(zé)處理事務(wù)性的增刪改操作,從庫負(fù)責(zé)處理查詢操作,從而實現(xiàn)讀寫分離的操作。通過讀寫分離,就可以降低單臺數(shù)據(jù)庫的訪問壓力, 提高訪問效率,也可以避免單機(jī)故障。

      在項目中,如何通過Java 代碼來完成讀寫分離呢,如何在執(zhí)行SELECT的時候查詢從庫,而在執(zhí)行INSERT、UPDATE、DELETE的時候,操作主庫呢?這個時候,我們就需要介紹一個新的組件: ShardingJDBC。

      1.關(guān)于ShardingJDBC

      Sharding-JDBC定位為輕量級Java框架,在Java的JDBC層提供的額外服務(wù)。它使用客戶端直連數(shù)據(jù)庫,以jar包形式提供服務(wù),無需額外部署和依賴,可理解為增強(qiáng)版的JDBC驅(qū)動,完全兼容JDBC和各種ORM框架。

      Sharding-JDBC具有以下幾個特點:

      適用于任何基于JDBC的ORM框架

      JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。

       

      支持任何第三方的數(shù)據(jù)庫連接池

       

      DBCP, C3P0, BoneCP, Druid, HikariCP等。

       

      支持任意實現(xiàn)JDBC規(guī)范的數(shù)據(jù)庫

       
      目前支持MySQL,Oracle,SQLServer,PostgreSQL以及任何遵循SQL92標(biāo)準(zhǔn)的數(shù)據(jù)庫。

      2、pom 依賴:

      <dependency>
      <groupId>org.apache.shardingsphere</groupId>
      <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
      <version>4.0.0-RC1</version>
      </dependency>
      接下來我們就做一個小案例,首先我們要把我們MySQL主從復(fù)制配置,教程在開篇已經(jīng)提供給各位了。

      3、入門案例
      首先我們要在項目pom 文件中引入依賴。

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

      然后在yml 文件中配置數(shù)據(jù)源。

      # 配置服務(wù)器
      server:
        port: 8081 # 配置端口號
      spring:
        shardingsphere:
          datasource:
            names:
              master,slave # 數(shù)據(jù)源的名稱master,slave是可以隨意定義的,不是固定的
            # write主數(shù)據(jù)源:for save,update,delete
            master:
              type: com.alibaba.druid.pool.DruidDataSource
              driver-class-name: org.postgresql.Driver
              url: jdbc:postgresql://129.184.13.*:5000/postgres
              username: postgres
              password: postgres
            # read從數(shù)據(jù)源:only for select
            slave:
              type: com.alibaba.druid.pool.DruidDataSource
              driver-class-name: org.postgresql.Driver
              url: jdbc:postgresql://129.184.13.*:5001/postgres
              username: postgres
              password: postgres
          masterslave:
            # 讀寫分離配置
            load-balance-algorithm-type: round_robin #輪詢 如果有多個從庫,從庫的負(fù)載均衡策略
            # 最終的數(shù)據(jù)源名稱
            name: dataSource
            # 主庫數(shù)據(jù)源名稱
            master-data-source-name: master #主庫數(shù)據(jù)庫名稱
            # 從庫數(shù)據(jù)源名稱列表,多個逗號分隔
            slave-data-source-names: slave #從庫數(shù)據(jù)庫名稱
          props:
            sql:
              show: true #開啟SQL顯示,默認(rèn)false
        main:
          allow-bean-definition-overriding: true # 允許如果當(dāng)前項目中存在同名的bean,后定義的bean會覆蓋先定義的
      mybatis-plus:
        configuration:
          #在映射實體或者屬性時,將數(shù)據(jù)庫中表名和字段名中的下劃線去掉,按照駝峰命名法映射
          map-underscore-to-camel-case: true
          log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
        global-config:
          db-config:
            id-type: ASSIGN_ID
      mybatis:
        #config-location: classpath:mybatis/mybatis-config.xml #指定全局配置文件位置
        mapper-locations: classpath:mapper/*.xml #指定sql映射文件位置
        configuration:
          map-underscore-to-camel-case: true #設(shè)置為列名允許映射駝峰命名法
      View Code

       

      4、測試

      我們使用shardingjdbc來實現(xiàn)讀寫分離,直接通過上述簡單的配置就可以了。

      配置完畢之后,我們就可以重啟服務(wù),通過postman來訪問controller的方法,來完成用戶信息的增刪改查,我們可以通過debug及日志的方式來查看每一次執(zhí)行增刪改查操作,使用的是哪個數(shù)據(jù)源,連接的是哪個數(shù)據(jù)庫。

      4.1 增加

       從控制臺輸入日志看,它確實做的是主庫master

       

       4.2 刪除

       

      控制臺輸出日志,可以看到操作master主庫:

       

       4.3 修改

       控制臺輸出日志,可以看到操作master主庫:

       

       4.4 查詢

       控制臺輸出日志,可以看到操作slave從庫:

       

       

       

      ps:

      Sharding-JDBC官方地址

      轉(zhuǎn)載自:https://blog.csdn.net/weixin_53041251/article/details/126985331

       

      posted @ 2023-08-28 17:12  MasonZhang  閱讀(285)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产成人精品一区二区三区| 亚洲中文字幕一二三四区| 日本真人添下面视频免费| 另类 专区 欧美 制服| 精品久久综合日本久久网| 加勒比精品一区二区三区| 国产久免费热视频在线观看| 国产美女免费永久无遮挡| 国产精品老年自拍视频| 插入中文字幕在线一区二区三区| 91精品国产一二三产区| 中文字幕av无码一区二区三区| 国产精品无遮挡又爽又黄| 亚洲深夜精品在线观看| 少妇被躁爽到高潮无码文| av天堂亚洲天堂亚洲天堂| av中文字幕国产精品| 欧美性猛交xxxx免费看| 国产亚洲综合一区二区三区| 亚洲午夜理论无码电影| 中文字幕国产精品日韩| 亚洲综合国产激情另类一区| 亚洲av成人午夜福利| 午夜夜福利一区二区三区| 精品人妻中文字幕在线| a∨变态另类天堂无码专区| 亚洲一区二区三区在线播放无码| 国产欧美精品aaaaaa片| 国产精品播放一区二区三区| 中文字幕在线亚洲精品| 国产日产亚洲系列av| 一区二区三区四区高清自拍| 乱码中文字幕| 精品人妻中文字幕av| 人妻人人妻a乱人伦青椒视频| 国产女人看国产在线女人| 亚洲高清WWW色好看美女| 福利一区二区在线视频| 亚洲成人午夜排名成人午夜| 欧美熟妇性XXXX欧美熟人多毛| 性欧美vr高清极品|