sharding-jdbc配置读写分离

sharding-jdbc配置读写分离

sharding-jdbc 简介

sharding-jdbc 是一个开源的适用于微服务的分布式数据访问基础类库,它始终以云原生的基础开发套件为目标。只支持java语言

sharding-jdbc定位为轻量级java框架,使用客户端直连数据库,以jar包的形式提供服务,未使用中间件技术,无需额外部署,并无其他依赖,可以理解为增强版的JDBC驱动

sharding-jdbc完整的实现了分库分表/读写分离/分布式主键功能,并实现了柔性事务.

² 适用于任何基于Java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。

² 基于任何第三方的数据库连接池,如:DBCP, C3P0, BoneCP, Druid, HikariCP等。

² 支持任意实现JDBC规范的数据库。目前支持MySQL,Oracle,SQLServer和PostgreSQL。

sharding-jdbc都有哪些包?

① sharding-jdbc-config-parent 配置相关源码

② sharding-jdbc-core 核心源码

③ sharding-jdbc-doc 文档

④ sharding-jdbc-example:针对各个模块的测试用例代码;

⑤ sharding-jdbc-plugin:目前只有KeyGenerator的三种实现;

⑥ sharding-jdbc-transaction-parent:事务相关源码;

sharding-jdbc架构图(2.x架构图)

在这里插入图片描述
sharding-jdbc(3.x) Sharding-Sphere正式发布: 它是由sharding-jdbc/sharding-proxy/sharding- Sidecar 组成的.

Sharding-Proxy

定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前先提供MySQL版本,它可以使用任何兼容MySQL协议的访问客户端(如:MySQL Command Client, MySQL Workbench等)操作数据,对DBA更加友好。

在这里插入图片描述

Sharding-Sidecar

定位为Kubernetes(k8s)或Mesos的云原生数据库代理,以DaemonSet的形式代理所有对数据库的访问。 通过无中心、零侵入的方案提供与数据库交互的的啮合层,即Database Mesh,又可称数据网格。

在这里插入图片描述

sharding-jdbc读写分离配置

导入jar包:

<!-- 数据库连接池 -->
<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>
<!-- sharding-jdbc -->
<dependency>
    <groupId>io.shardingsphere</groupId>
    <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
    <version>3.0.0.M1</version>
</dependency>

application.yml中添加配置

#注册需要sharding管理的数据库名称
sharding.jdbc.datasource.names=ds0,ds1

#配置ds0数据库
sharding.jdbc.datasource.ds0.type=org.apache.commons.dbcp.BasicDataSource
sharding.jdbc.datasource.ds0.driver-class-name=com.mysql.jdbc.Driver
sharding.jdbc.datasource.ds0.url=jdbc:mysql://127.0.0.1:3307/shardtest1?serverTimezone=UTC
sharding.jdbc.datasource.ds0.username=root
sharding.jdbc.datasource.ds0.password=123456

#配置ds1数据库
sharding.jdbc.datasource.ds1.type=org.apache.commons.dbcp.BasicDataSource
sharding.jdbc.datasource.ds1.driver-class-name=com.mysql.jdbc.Driver
sharding.jdbc.datasource.ds1.url=jdbc:mysql://127.0.0.1:3308/shardtest1?serverTimezone=UTC
sharding.jdbc.datasource.ds1.username=root
sharding.jdbc.datasource.ds1.password=123456


#负载均衡策略  随机和轮询值:random、round_robin  多个从数据库如何选择 
sharding.jdbc.config.masterslave.load-balance-algorithm-type=random
#配置主从名称
sharding.jdbc.config.masterslave.name=db1s1
#指定主数据库
sharding.jdbc.config.masterslave.master-data-source-name=ds0
#指定从数据库
sharding.jdbc.config.masterslave.slave-data-source-names=ds1
#
# 开启SQL显示,默认值: false,注意:仅配置读写分离时不会打印日志!!
sharding.jdbc.config.sharding.props.show=true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值