• Mysql Connector 5.1 好用的新特性


    转载自并发编程网 – ifeve.com本文链接地址: Mysql Connector 5.1 好用的新特性

    Mysql Connector 5.1 好用的新特性

    Mysql connector 5.1对于集群部署的情况,给予了负载均衡、故障迁移、主从复制读写分离的支持。

    故障迁移

    使用mysql connector提供的故障迁移服务,首先需要配置相应的jdbc url:

    jdbc:mysql://[primary host][:port],[secondary host 1][:port][,[secondary host 2][:port]]…[/[database]]

    [?propertyName1=propertyValue1[&propertyName2=propertyValue2]…]

    这个mysql服务器连接表包含了两种类型的mysql服务器,主机和从机。当创建一个mysql连接的时候,驱动总是先去连接主机,但是如果发生了通信问题,就会故障迁移到列表中的从机。

    故障迁移可以配置以下连接属性:failOverReadOnly、secondsBeforeRetryMaster、queriesBeforeRetryMaster、retriesAllDown、autoReconnect、autoReconnectForPools。

    负载均衡

    在mysql connector5.1.3以后,对于mysql服务器集群或者主-主复制部署的情况,可以动态地配置负载均衡连接。

    使用mysql connector提供的负载均衡服务,首先需要配置相应的jdbc url:

    jdbc:mysql:loadbalance://[host1][:port],[host2][:port][,[host3][:port]]…[/[database]] »

    [?propertyName1=propertyValue1[&propertyName2=propertyValue2]…]

    这个功能有两个配置属性loadBalanceConnectionGroup、loadBalanceEnableJMX。

    通过配置loadBalanceEnableJMX,你可以通过jmx client例如jconsole来监控和执行远程操作。

    com.mysql.jdbc.jmx.LoadBalanceConnectionGroupManagerMBean 有以下的方法:

    int getActiveHostCount(String group);

    int getTotalHostCount(String group);

    long getTotalLogicalConnectionCount(String group);

    long getActiveLogicalConnectionCount(String group);

    long getActivePhysicalConnectionCount(String group);

    long getTotalPhysicalConnectionCount(String group);

    long getTotalTransactionCount(String group);

    void removeHost(String group, String host) throws SQLException;

    void stopNewConnectionsToHost(String group, String host) throws SQLException;

    void addHost(String group, String host, boolean forExisting);

    String getActiveHostsList(String group);

    String getRegisteredConnectionGroups();

    主/从复制

    使用mysql connector提供的主从复制服务,首先需要配置相应的jdbc url:

    jdbc:mysql:replication://[master host][:port],[slave host 1][:port][,[slave host 2][:port]]…[/[database]] »

    [?propertyName1=propertyValue1[&propertyName2=propertyValue2]…]

    同时还支持主从读写分离:

    使用com.mysql.jdbc.ReplicationDriver驱动可以实现主从读写分离,主机是读写模式,从机是读模式。对于一个只读的连接Connection.setReadOnly(true),驱动会自动把查询交给从机。

    当设置了readFromMasterWhenNoSlaves=true,如果没有从机的话,就会把只读的连接交给主机。

    由于在mysql中主从复制是异步的,所以当对实时性要求比较高的时候,应该Connection.setReadOnly(false)来保证从主机读取数据。

    通过设置replicationEnableJMX=true,可以使用com.mysql.jdbc.jmx.ReplicationGroupManagerMBean来进行监控和远程操作。ReplicationGroupManagerMBean提供以下方法。

    public abstract void addSlaveHost(String groupFilter, String host) throws SQLException;

    public abstract void removeSlaveHost(String groupFilter, String host) throws SQLException;

    public abstract void promoteSlaveToMaster(String groupFilter, String host) throws SQLException;

    public abstract void removeMasterHost(String groupFilter, String host) throws SQLException;

    public abstract String getMasterHostsList(String group);

    public abstract String getSlaveHostsList(String group);

    public abstract String getRegisteredConnectionGroups();

    public abstract int getActiveMasterHostCount(String group);

    public abstract int getActiveSlaveHostCount(String group);

    public abstract int getSlavePromotionCount(String group);

    public abstract long getTotalLogicalConnectionCount(String group);

    public abstract long getActiveLogicalConnectionCount(String group);

  • 相关阅读:
    【zz】编程修养(一二三)
    Lec1计算字符串的相似度
    ASP.NETFLV处理流代码
    获取指定文件夹下所有子目录及文件(树形)
    Flex及AS3的百条常用知识(转载)
    [AS3] 解决跨域问题
    Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
    ASP.NET中的File类和Directory类的相关知识
    Asp.net 备份、还原Ms SQLServer及压缩Access数据库
    http://blog.csdn.net/octverve/archive/2008/01/29/2071356.aspx
  • 原文地址:https://www.cnblogs.com/yinkh/p/6293558.html
Copyright © 2020-2023  润新知