shardingsphere读写分离配置

这篇具有很好参考价值的文章主要介绍了shardingsphere读写分离配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注:

如果是升级之前的单库单表,要将之前的 数据库接池 druid-spring-boot-starter 注释掉,换成 druid,否则无法连接数据库。

原因:

  1. 因为数据连接池的starter(比如druid)可能会先加载并且其创建一个默认数据源,这将会使得sharding-jdbc创建数据源时发生冲突。
  2. 解决办法为,去掉数据连接池的starter即可,sharing-jdbc自己会创建数据连接池。

即:

<!-- Druid 连接池 -->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid-spring-boot-starter</artifactId>
  <version>1.2.16</version>
</dependency>

改成:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.16</version>
</dependency>

另:数据库驱动类型如果不是用druid,也可以用zaxxer,这样引入的maven包是:

<dependency>
  <groupId>com.zaxxer</groupId>
  <artifactId>HikariCP</artifactId>
  <version>${hikaricp.version}</version>
</dependency>

读写分离yaml配置

spring
  #读写分离配置
  shardingsphere:
    #数据源配置,可配置多个data_source_name
    datasource:
      #names: ds1,ds2,ds3
      names: master,slave1,slave2
      #master ds1数据库连接信息
      master:
        #数据库驱动类型
        #type: com.zaxxer.hikari.HikariDataSource
        type: com.alibaba.druid.pool.DruidDataSource
        #数据库驱动类名
        driver-class-name: com.mysql.cj.jdbc.Driver
        #数据库url连接
        url: jdbc:mysql://47.99.110.140:3306/jpay?useUnicode=true
        #数据库用户名
        username: root
        #数据库密码
        password: root@2022
        maxPoolSize: 100
        minPoolSize: 5
      #slave1 ds2数据库连接信息
      slave1:
        #数据库驱动类型
        #        type: com.zaxxer.hikari.HikariDataSource
        type: com.alibaba.druid.pool.DruidDataSource
        #数据库驱动类名
        driver-class-name: com.mysql.cj.jdbc.Driver
        #数据库url连接
        url: jdbc:mysql://47.99.110.141:3306/jpay?useUnicode=true
        #数据库用户名
        username: root
        #数据库密码
        password: root@2022
        maxPoolSize: 100
        minPoolSize: 5
      #slave2 ds3数据库连接信息
      slave2:
        #数据库驱动类型
#        type: com.zaxxer.hikari.HikariDataSource
        type: com.alibaba.druid.pool.DruidDataSource
        #数据库驱动类名
        driver-class-name: com.mysql.cj.jdbc.Driver
        #数据库url连接
        url: jdbc:mysql://47.99.110.142:3306/jpay?useUnicode=true
        #数据库用户名
        username: root
        #数据库密码
        password: root@2022
        maxPoolSize: 100
        minPoolSize: 5
    mode:
      # 内存模式,元数据保存在当前进程中
      type: Memory
    #属性配置
    props:
      sql:
        #是否开启SQL显示,默认值: false
        show: true
    #读写分离规则
    masterSlaveRule:
      #读写分离数据源名称
      name: ms
      #主库数据源名称
      master-data-source-name: master
      #从库数据源名称列表
      slave-data-source-names: slave1,slave2
      #从库负载均衡算法类型,可选值:ROUND_ROBIN,RANDOM。若`loadBalanceAlgorithmClassName`存在则忽略该配置
      loadBalanceAlgorithmType: ROUND_ROBIN
        #读写分离负载算法的属性配置
#        props:
    sharding:
      #配置默认数据源ds1 默认数据源,主要用于写
      default-data-source-name: master
      rules:
        readwrite-splitting: # 读写分离规则
          data-sources: # 数据源配置
            random: # 这个名字随便起
              type: Static                               # 静态类型
              load-balancer-name: round_robin            # 负载均衡算法名字
              props:
                write-data-source-name: master           # 写数据源
                read-data-source-names: slave1,slave2    # 读数据源
          load-balancers: # 负载均衡配置
            round_robin: # 跟上面负载均衡算法的名字对应
              type: round_robin

注:把以上的ip , 用户名,账号,密码 改成你的即可。文章来源地址https://www.toymoban.com/news/detail-617628.html

到了这里,关于shardingsphere读写分离配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL-数据库读写分离(中)

    ♥️ 作者:小刘在C站 ♥️ 个人主页:  小刘主页  ♥️ 努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️ 学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏: 云计算技术 ♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSD

    2024年02月16日
    浏览(53)
  • MySQL-数据库读写分离(下)

    ♥️ 作者:小刘在C站 ♥️ 个人主页:  小刘主页  ♥️ 努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️ 学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏: 云计算技术 ♥️小刘私信可以随便问,只要会绝不吝啬,感谢CSD

    2024年02月15日
    浏览(38)
  • 数据库应用:Mycat实现读写分离

    目录 一、理论 1.Mycat 2.Mycat安装启动 3.Mycat搭建读写分离 4.垂直分库 5.水平分表 6.Mycat高可用 7.Mycat安全设置 8.Mycat监控工具 二、实验 1.Mycat读写分离 2.Mycat监控安装 三、问题 1.Mycat命令无法补全 2.Mycat启动失败 3.zookeeper启动报错 四、总结 (1)概念 MyCAT是一款由阿里Cobar演变而来

    2024年02月15日
    浏览(45)
  • 如何正确使用数据库的读写分离

    在应用系统发展的初期,我们并不知道以后会发展成什么样的规模,所以一开始不会考虑复杂的系统架构,复杂的系统架构费时费力,开发周期长,与系统发展初期这样的一个定位是不吻合的。所以,我们都会采用简单的架构,随着业务不断的发展,访问量不断升高,我们再

    2024年02月02日
    浏览(61)
  • 项目练习:构建读写分离的数据库集群

    目录 一、目标实现 二、项目准备 三、项目实施 1.配置基础环境 1.1修改主机名 1.2配置3台群集虚拟机的/etc/hosts文件 1.3.配置网卡 1.4.配置本地yum源 2.部署Mycat中间件服务 2.1安装KDJ环境 3.部署MariaDB主从数据库集群服务 3.1安装MariaDB服务 3.2初始化MariaDB数据库 3.3配置数据库集群主

    2024年02月02日
    浏览(54)
  • MySQL数据库 主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据库

    2024年02月10日
    浏览(48)
  • 【MySQL数据库】主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据库

    2024年02月11日
    浏览(59)
  • 【数据库】mysql主从复制与读写分离

      读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE ),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。   因为数据库的\\\"写”(写10000条数据可能要3分钟)操作是比较耗时的。   

    2024年02月11日
    浏览(72)
  • 【数据库七】MySQL主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作 (insert、update、delete),而 从数据库处理select查询操作 。 数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库 。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据

    2024年02月11日
    浏览(59)
  • 看!MySQL 8.2 数据库支持读写分离啦!

    MySQL 8.2.0创新版本已于2023-10-17发布,MySQL Router 8.2 支持数据库的读/写分离,这里将在InnoDB Cluster集群中演示数如何进行读写分离,本篇内容包括:MySQL Server数据库安装、MySQL Shell安装、MySQL Router安装、InnoDB Cluster安装与读写分离演示,若您只关注读写分离的演示,可直接跳至最

    2024年02月05日
    浏览(165)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包