内容简介:国庆期间研究了数据库中间件例如Mycat和Sharding JDBC,Sharding-jdbc和Mycat使用不同的理念,Sharding-jdbc目前是基于Jdbc驱动,无需额外的proxy,因此也无需关注proxy本身的高可用。Mycat 是基于 Proxy,它复写了 MySQL 协议,将 Mycat Server 伪装成一个 MySQL 数据库,而 Sharding-JDBC 是基于 JDBC 接口的扩展,是以jar包的形式提供轻量级服务的。先介绍一下整合过程中用到的主要软件的版本:注意:实现读写
国庆期间研究了数据库中间件例如Mycat和Sharding JDBC,Sharding-jdbc和Mycat使用不同的理念,Sharding-jdbc目前是基于Jdbc驱动,无需额外的proxy,因此也无需关注proxy本身的高可用。Mycat 是基于 Proxy,它复写了 MySQL 协议,将 Mycat Server 伪装成一个 MySQL 数据库,而 Sharding-JDBC 是基于 JDBC 接口的扩展,是以jar包的形式提供轻量级服务的。
先介绍一下整合过程中用到的主要软件的版本:
Spring Boot: 1.5.8.RELEASE Sharding-JDBC: 2.0.3
注意:实现读写分离我们自己要先配置好MySQL的主从复制,我自己已经配置好了一主两从。配置的步骤可以参考【实现MySQL主从复制】
pom.xml 依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>io.shardingjdbc</groupId> <artifactId>sharding-jdbc-core-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> </dependencies>
application配置文件
server.port=8080 sharding.jdbc.datasource.names=ds_master,ds_slave_1,ds_slave_2 # 主数据源 sharding.jdbc.datasource.ds_master.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds_master.driver-class-name=com.mysql.jdbc.Driver sharding.jdbc.datasource.ds_master.url=jdbc:mysql://localhost:3306/db1?characterEncoding=utf-8 sharding.jdbc.datasource.ds_master.username=root sharding.jdbc.datasource.ds_master.password=123456 sharding.jdbc.datasource.ds_master.maxPoolSize=20 # 从数据源 ds_slave_1 sharding.jdbc.datasource.ds_slave_1.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds_slave_1.driver-class-name=com.mysql.jdbc.Driver sharding.jdbc.datasource.ds_slave_1.url=jdbc:mysql://localhost:3307/db1?characterEncoding=utf-8 sharding.jdbc.datasource.ds_slave_1.username=root sharding.jdbc.datasource.ds_slave_1.password=123456 sharding.jdbc.datasource.ds_slave_1.maxPoolSize=20 # 从数据源 ds_slave_2 sharding.jdbc.datasource.ds_slave_2.type=com.alibaba.druid.pool.DruidDataSource sharding.jdbc.datasource.ds_slave_2.driver-class-name=com.mysql.jdbc.Driver sharding.jdbc.datasource.ds_slave_2.url=jdbc:mysql://localhost:3308/db1?characterEncoding=utf-8 sharding.jdbc.datasource.ds_slave_2.username=root sharding.jdbc.datasource.ds_slave_2.password=123456 sharding.jdbc.datasource.ds_slave_2.maxPoolSize=20 # 读写分离配置 sharding.jdbc.config.masterslave.load-balance-algorithm-type=round_robin sharding.jdbc.config.masterslave.name=dataSource sharding.jdbc.config.masterslave.master-data-source-name=ds_master sharding.jdbc.config.masterslave.slave-data-source-names=ds_slave_1,ds_slave_2 mybatis.config-location=classpath:mybatis-config.xml mybatis.mapper-locations=classpath:mapper/*.xml mybatis.typeAliasesPackage=net.ydstuio.shardingjdbc.repository
到此,Sharing-Jdbc的读写分离就已经就配置好了,看看是不是很简单。如果对数据的及时性要求很高,可以使用下面的代码,使得读取也落到主库上。
// 强制路由主库 HintManager.getInstance().setMasterRouteOnly();
最后更新于 2018-10-06 16:02:59 并被添加「java sharding-jdbc」标签,已有 1 位童鞋阅读过。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- SpringBoot整合MyCat实现读写分离
- SpringBoot + MyBatisPlus + ShardingJDBC 分库分表读写分离整合
- Spring Boot中整合Sharding-JDBC读写分离示例
- 想用数据库“读写分离” 请先明白“读写分离”解决什么问题
- Java 读写锁浅析
- Golang文件读写
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring in Action
Craig Walls / Manning Publications / 2011-6-29 / USD 49.99
Spring in Action, Third Edition has been completely revised to reflect the latest features, tools, practices Spring offers to java developers. It begins by introducing the core concepts of Spring and......一起来看看 《Spring in Action》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
HEX CMYK 转换工具
HEX CMYK 互转工具