zoukankan      html  css  js  c++  java
  • 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");
    
         .......
      }
    }
    

      

    作者:Taven.李锡远
    出处:http://taven.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载。但必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。博主QQ/微信: 17020415 (QQ和微信同号哦^_^)
  • 相关阅读:
    Netty之Channel*
    Netty之ByteBuf
    Spark On Yarn的各种Bug
    外网无法访问hdfs文件系统
    报错:Unsupported field: HourOfDay
    启动spark-shell --master yarn的bug
    KMP算法思路
    单例模式的正确实现
    redis 持久化
    记一次MacOs降级过程
  • 原文地址:https://www.cnblogs.com/taven/p/3040489.html
Copyright © 2011-2022 走看看