码迷,mamicode.com
首页 > 数据库 > 详细

MySQL读写分离(二)—— jdbc驱动实现

时间:2019-02-21 15:31:53      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:connect   find   coding   网上   only   移除   public   turn   cti   

mysql-connector-java驱动本身也提供了读写分离的功能,使用起来也非常简单。

网上很多文章会提到com.mysql.jdbc.ReplicationDriver这个类,其实这个类在稍高的mysql-connector-java版本中已经被移除了,直接使用com.mysql.cj.jdbc.Driver即可。

首先,看配置:

spring:
  datasource:
    url: jdbc:mysql:replication://192.168.41.130:3306,192.168.41.130:3307/test?useUnicode=true&characterEncoding=utf-8
    username: root
    password: mysql
    driver-class-name: com.mysql.cj.jdbc.Driver

url的第一个mysql是作为master库,后面的所有mysql都是slave库。

① 在代码中,如果需要走slave库,那么只需要指定为只读事务,加上@Transactional(readOnly = true)注解即可,例如:

    @Override
    @Transactional(readOnly = true)
    public UserEntity findById(Long id) {
        return userDao.findById(id);
    }

② 如果加了@Transactional或者没有事务的方法,那么都是走msater库。

这是一种比较简单的读写分离方案,另外,还可以通过mysql-router中间件去实现读写分离。

MySQL读写分离(二)—— jdbc驱动实现

标签:connect   find   coding   网上   only   移除   public   turn   cti   

原文地址:https://www.cnblogs.com/ahhyong/p/10412681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!