开发者社区> tavenli> 正文

MySQL读写分离又一好办法 使用 com.mysql.jdbc.ReplicationDriver

简介: 在用过Amoeba 和 Cobar,还有dbware 等读写分离组件后,今天我的一个好朋友跟我讲,MySQL自身的也是可以读写分离的,因为他们提供了一个新的驱动,叫 com.mysql.jdbc.ReplicationDriver   说明文档:http://dev.
+关注继续查看

在用过Amoeba 和 Cobar,还有dbware 等读写分离组件后,今天我的一个好朋友跟我讲,MySQL自身的也是可以读写分离的,因为他们提供了一个新的驱动,叫 com.mysql.jdbc.ReplicationDriver

 

说明文档:http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-replication-connection.html

 

代码例子:

import java.sql.Connection;
import java.sql.ResultSet;
import java.util.Properties;

import com.mysql.jdbc.ReplicationDriver;

public class ReplicationDriverDemo {

  public static void main(String[] args) throws Exception {
    ReplicationDriver driver = new ReplicationDriver();

    Properties props = new Properties();

    // We want this for failover on the slaves
    props.put("autoReconnect", "true");

    // We want to load balance between the slaves
    props.put("roundRobinLoadBalance", "true");

    props.put("user", "foo");
    props.put("password", "bar");

    //
    // Looks like a normal MySQL JDBC url, with a
    // comma-separated list of hosts, the first
    // being the 'master', the rest being any number
    // of slaves that the driver will load balance against
    //

    Connection conn =
        driver.connect("jdbc:mysql:replication://master,slave1,slave2,slave3/test",
            props);

    //
    // Perform read/write work on the master
    // by setting the read-only flag to "false"
    //

    conn.setReadOnly(false);
    conn.setAutoCommit(false);
    conn.createStatement().executeUpdate("UPDATE some_table ....");
    conn.commit();

    //
    // Now, do a query from a slave, the driver automatically picks one
    // from the list
    //

    conn.setReadOnly(true);

    ResultSet rs =
      conn.createStatement().executeQuery("SELECT a,b FROM alt_table");

     .......
  }
}

  

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL5.5可以升级到MySQL5.7吗?会有什么问题?底层原理是什么?
MySQL5.5可以升级到MySQL5.7吗?会有什么问题?底层原理是什么?
89 0
Java连接数据库Mysql
Java连接数据库Mysql
53 0
【C#】【MySQL】C#连接MySQL数据库(一)代码
【C#】【MySQL】C#连接MySQL数据库(一)代码
138 0
【MySQL】浅谈MySQL事务原理
国庆假期后的第一个工作日,简析MySQL事务实现原理,助你跟面试官对线不落下风~
58 0
【MySQL】MySQL是如何实现事务的
【MySQL】MySQL是如何实现事务的
194 0
使用 JDBC 连接 MySQL 数据库
MySQL 对应驱动支持版本如下,可进入 http://dev.mysql.com/downloads/connector/j/下载合适版本后在项目中导入 jar 包。
238 0
Mysql学习_02_mysql数据导入导出
      二、参考资料 1.MySQL 数据导出
699 0
[mysql]MySQL 两种连接方式
1:TCP/IP 套接字方式 这种方式会在TCP/IP 连接上建立一个基于网络的连接请求,一般是client连接跑在Server上的MySQL实例,2台机器通过一个TCP/IP 网络连接。
929 0
+关注
tavenli
多年游戏行业、互联网行业系统开发经验。熟悉Java 、C++、Golang、Lua语言开发,有丰富大数据大并发应用处理的经验。
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
对比MySQL,看HBase的能力及场景
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像