`
vern
  • 浏览: 16735 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

阅读更多

在用过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");

.......
}
}
 原文出自:http://www.cnblogs.com/taven/archive/2013/04/24/3040489.html
分享到:
评论

相关推荐

    Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现分库分表+读写分离.docx

    sharding.jdbc.datasource.ds-master-0.driver-class-name=com.mysql.jdbc.Driver sharding.jdbc.datasource.ds-master-0.url=jdbc:mysql://10.0.0.3:3306/cool?useUnicode=true&characterEncoding=utf8&tinyInt1...

    jdbc-mysql-connector-j-8.0.31.jar jdbc-sqljdbc41.jar

    本话题将深入探讨两个关键的Java数据库连接器(JDBC)驱动,即`jdbc-mysql-connector-j-8.0.31.jar`(用于MySQL)和`jdbc-sqljdbc41.jar`(用于SQL Server),以及它们在JMeter中的应用。 首先,`jdbc-mysql-...

    Sharding-JDBC教程:Spring Boot整合Sharding-JDBC实现读写分离.docx

    sharding.jdbc.datasource.db-test0.driverClassName=com.mysql.jdbc.Driver sharding.jdbc.datasource.db-test0.url=jdbc:mysql://192.168.137.142:3306/cool?useUnicode=true&characterEncoding=utf8&tinyInt1...

    使用sharding-jdbc快速实现自动读写分离-demo源码

    在这个“使用sharding-jdbc快速实现自动读写分离-demo源码”中,我们将探讨如何利用Sharding-JDBC实现这一功能。 首先,我们需要理解Sharding-JDBC的基本原理。Sharding-JDBC作为一个数据库中间件,工作在JDBC层,...

    mysql jdbc driver

    1. 加载驱动:通过`Class.forName("com.mysql.jdbc.Driver")`方法加载MySQL的JDBC驱动。 2. 创建连接:使用`DriverManager.getConnection()`方法,传入数据库URL、用户名和密码来建立与MySQL服务器的连接。例如: `...

    使用sharding-jdbc实现读写分离和分库分表.zip

    在IT行业中,数据库管理是关键任务之一,尤其是在大型系统中,如何有效地进行读写分离和分库分表显得尤为重要。本教程将通过介绍如何使用Sharding-JDBC在SpringBoot框架下实现这一目标,来帮助你优化数据库性能和...

    详解Spring Boot中整合Sharding-JDBC读写分离示例

    Sharding-JDBC 是一个开源的数据库中间件,提供了数据分片、读写分离、数据库路由等功能。本文将详细介绍如何使用 Spring Boot 配置 Sharding-JDBC 实现读写分离。 首先,需要在 pom.xml 文件中添加 Sharding-JDBC ...

    MySQL 读写分离实例详解

    MySQL 自身支持读写分离,通过使用 `com.mysql.jdbc.ReplicationDriver` 驱动,我们可以直接在应用程序中实现这一功能,而无需依赖额外的中间件如 Amoeba、Cobar 或 dbware。 首先,理解读写分离的基本概念,读写...

    Mysql5.6、Mysql5.7 JDBC驱动

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而JDBC(Java Database Connectivity)是Java语言与数据库交互的标准接口。本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-...

    MySQL主从同步与读写分离配置图文详解

    ### MySQL主从同步与读写分离配置详解 #### 一、实验目的 在现代的生产环境中,单一的MySQL服务器往往无法满足对数据处理的安全性、高可用性和高并发的需求。因此,采用**主从同步(Master-Slave Replication)**...

    YII2数据库MySQL复制和读写分离配置

    在使用YII2开发应用时,配置MySQL复制和读写分离能够帮助我们更好地利用资源,实现负载均衡。 在进行MySQL复制和读写分离之前,需要了解MySQL的复制原理和基本组件。MySQL的复制过程大致包括以下几个步骤:主服务器...

    ShardingJDBC5.1.1按月分库分表、读写分离、自动创表完整demo

    《使用ShardingJDBC5.1.1实现按月分库分表、读写分离与自动创表的全面实战》 在现代企业级应用中,数据量的快速增长使得数据库的性能优化成为至关重要的环节。ShardingJDBC作为一款轻量级的Java框架,能够有效地...

    Amoeba搞定mysql主从读写分离

    总之,Amoeba作为一款Java环境下的MySQL读写分离解决方案,通过智能的分片策略和高可用性设计,能够有效提升系统的读取性能和容错能力。但在实际应用中,需要结合业务需求和技术限制,合理选择和配置,才能发挥其...

    springboot 实现mysql读写分离 通过aop 并且根据方法名进行分类 实现读写分离

    在这个场景中,我们将探讨如何利用Spring Boot、AOP(面向切面编程)以及MySQL数据库来实现数据的读写分离,从而提高系统的性能和可扩展性。 首先,我们需要理解什么是数据读写分离。在大型系统中,为了减轻主...

    mysql-connector-java-5.1.40.tar.gz

    值得注意的是,从MySQL 8.0开始,推荐使用`com.mysql.cj.jdbc.Driver`代替`com.mysql.jdbc.Driver`,以兼容新的特性并避免已弃用的方法。 总的来说,`mysql-connector-java-5.1.40.tar.gz`是一个包含MySQL数据库...

    mysql 5.7驱动

    在这个示例中,`Class.forName("com.mysql.jdbc.Driver")`加载了驱动,然后`DriverManager.getConnection()`创建了一个到数据库的连接。 MySQL 5.7版本在功能和性能上都有所提升。例如,它引入了InnoDB存储引擎的多...

    基于Mycat的MySQL主从读写分离配置详解与示例

    本文将详细介绍如何利用Mycat这一开源数据库中间件实现MySQL数据库的主从读写分离,并通过具体的配置步骤及示例进行说明。 #### 二、Mycat简介 Mycat是一款开源的数据库连接池产品,它位于Java应用程序和数据库...

    如何解决MySQL的master-slave模式中ReplicationDriver的使用问题

    总的来说,解决`ReplicationDriver`在MySQL主从复制中的问题需要对MySQL复制机制、JDBC驱动和Java编程有深入理解。通过阅读和分析提供的源码,可以定制适合特定需求的解决方案,以应对各种复杂的网络环境和性能挑战...

Global site tag (gtag.js) - Google Analytics