首页 > 其他分享 >Sharding-JDBC框架

Sharding-JDBC框架

时间:2023-11-08 10:37:34浏览次数:28  
标签:JDBC slave name 框架 type mysql 数据源 Sharding com

背景

面 对 日 益 增 加 的 系 统 访 问 量 , 数 据 库 的 吞 吐 量 面 临 着 巨 大 瓶 颈 。 对 于 同 一 时 刻 有 大 量 并 发 读 操 作 和 较 少 写 操 作 类 型 的 
应 用 系 统 来 说 , 将 数 据 库 拆 分 为 主 库 和 从 库 , 主 库 负 责 处 理 事 务 性 的 增 删 改 操 作 , 从 库 负 责 处 理 查 询 操 作 , 能 够 有 效 
的 避 免 由 数 据 更 新 导 致 的 行 锁 使 得 整 个 系 统 的 查 询 性 能 得 到 极 大 的 改 善 。 
SELECT 飛 FROM t_user WHERE id=l 
UPDATEt_userSETstatuS=?WHEREid=1 
SELECT 黨 FROM t_user WHERE id=l 
UPDATEt_userSETstatus=?WHEREid=1 
DB 
lave 
Ma

 

Sharding-JDBCfrZ 
• EX-Yff«m+JDBCfiORMER, n: JPA, Hibernate, Mybatis, Spring JDBC 
• n: DBCP, c-3P0, Bonecp, Druid, HikariCP$o 
• äüßMySQL, oracle, SQLServer, PostgreSQLPÅAffföJMSQL92fiE 
(dependency) 
apache. 
<arti fact shard i ng— i fact 
<version>4. 0. O—RCI 
< / dependency>

 

Sharding-JDBC配置与分离规则(重点)

<dependencp 
<groupld>org.apache.shardingsphere</groupld> 
artifactld> 
<version>4.O.O-RC1</version> 
e/ dependencp

2.在application.yml中配置读写分离规则

server:

  port: 8080

spring:

  shardingsphere:

    datasource:

      names:

        master,slave

      # 主数据源 matser

      master:

        type: com.alibaba.druid.pool.DruidDataSource

        driver-class-name: com.mysql.cj.jdbc.Driver

        url: jdbc:mysql://192.168.138.100:3306/rw?characterEncoding=utf-8

        username: root

        password: root

      # 从数据源 slave

      slave:

        type: com.alibaba.druid.pool.DruidDataSource

        driver-class-name: com.mysql.cj.jdbc.Driver

        url: jdbc:mysql://192.168.138.101:3306/rw?characterEncoding=utf-8

        username: root

        password: root

    masterslave:

      # 读写分离配置 从库负载均衡策略,round_robin:轮询查询

      load-balance-algorithm-type: round_robin

      # 最终的数据源名称

      name: dataSource

      # 主库数据源名称

      master-data-source-name: master

      # 从库数据源名称列表,如果有多个,逗号分隔

      slave-data-source-names: slave

    props:

      sql:

        show: true #开启SQL显示,默认false

  main:

    allow-bean-definition-overriding: true

mybatis-plus:

  configuration:

    #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射

    map-underscore-to-camel-case: true

    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  global-config:

    db-config:

      id-type: ASSIGN_ID

3.在配置文件中配置允许Bean定义覆盖配置项

mal n: 
tion—overriding: tru

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:JDBC,slave,name,框架,type,mysql,数据源,Sharding,com
From: https://blog.51cto.com/u_16227669/8245753

相关文章

  • Seata分布式事务框架-AT模式与TCC模式介绍
    SeataAT事务方案Seata的AT模式(AutomaticTransaction)是一种无侵入的分布式事务解决方案。下面结合具体业务场景来分析其执行的原理。业务场景订单系统当用户下订单时,执行以下三步流程:订单系统保存订单订单系统调用库存服务,减少商品库存订单系统调用账户服务,扣减用户金额......
  • ssm框架整合
    spring+mybatis+springmvc框架的使用首先到导入jar包:接着就是springmvc的web.XML配置:  创建一个方配置文件的resources的文件,里面创建连接数据库池的db.properties,spring的核心配置文件mybtis,和springmvc的配置问阿金spring.xml和applicationContext.xml: 代码分别为:......
  • beego框架 golang web框架-网上花店
    beego框架golangweb框架-网上花店beego网上花店功能介绍主页商品列表展示商品详情用户登录注册购买购物车评价用户中心订单列表后台管理页商品管理添加修改删除商品用户管理添加删除用户网上花店功能比较简单适合刚接触beego的初学者使用技术beego框架My......
  • sharding分表应用笔记(一)——分表数据源配置
    sharding分表应用笔记(一)——分表数据源配置目录sharding分表应用笔记(一)——分表数据源配置1前言2配置2.1相关依赖2.2命名空间配置2.2.1引入sharding命名空间2.2.2物理数据源配置2.2.3分表数据源配置3外部链接1前言应用背景:物理数据源只有一个;对于部分数据量大的表实行......
  • 若依框架文件的上传和预览(超简版)
    若依框架文件的上传和预览(超简版)一、上传:1、首先创建一张上传文件的表droptableifexistssys_file_info;createtablesys_file_info(file_idint(11)notnullauto_incrementcomment'文件id',file_namevarchar(50)defa......
  • Scrapy框架基本使用(从安装到运行)
    Scrapy基本使用以抓取段子星中的标题和内容为例:https://duanzixing.com/1.Windows下安装:pipinstalltwistedpipinstallpywin32pipinstallscrapy2.创建工程#scrapystartproject<projectName>scrapystartprojectduanzixing3.新建爬虫源文件#进入工程目录......
  • Util应用框架基础(五) - 异常处理
    本节介绍Util应用框架如何处理系统错误.概述系统在运行过程中可能发生错误.系统错误可以简单分为两类:系统异常系统本身出现的错误.业务异常不满足业务规则出现的错误.如何处理系统异常如果发生系统异常,大多数情况下,你除了记录异常日志外,可能无法处理它们.一个......
  • 若依框架AjaxResult改造适应Swagger接口文档
    一、概述若依框架后端使用的响应对象AjaxResult,和Swagger存在不兼容问题,导致返回体即使使用了Swagger注解,但是Swagger接口文档中,不显示返回体的对象Swagger文档: 若依Gitee上,也存在此问题:https://gitee.com/y_project/RuoYi-Vue/commit/6805a96e533f56b86aaeecccc2693c6ff40......
  • 在ASP.NET MVC框架中,如何处理多个提交按钮?
    内容来自DOChttps://q.houxu6.top/?s=在ASP.NETMVC框架中,如何处理多个提交按钮?在ASP.NETFrameworkBeta中,有几种方法可以处理同一表单中的多个提交按钮。一种方法是使用一个隐藏字段来区分不同的提交按钮。例如:<%Html.BeginForm("MyAction","MyController",FormMethod......
  • Metasploit渗透测试框架的基本使用
    一、Metasploit渗透测试框架介绍(1)基础库metasploit基础库文件位于源码根目录路径下的libraries目录中,包括Rex,framework-core和framework-base三部分。Rex是整个框架所依赖的最基础的一些组件,如包装的网络套接字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例......