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);

转载自 并发编程网 - ifeve.com

时间: 2025-01-21 14:30:05

Mysql Connector 5.1 好用的新特性的相关文章

【MySQL】MySQL5.6新特性之crash-safe

一 介绍  MySQL 5.6 针对复制功能提供了新特性: slave支持crash-safe. 该功能可以解决之前版本中系统异常断电可能导致的SQL thread 信息不准确的问题.本文从原理方面对该特性进行介绍.二 原理  在了解crash-safe slave 之前,我们先分析一下MySQL 5.6 之前的版本出现 crash-unsafe 的原因.在slave上,复制包含两个线程:即replication中的IO thread和SQL thread.IO thread负责从master拷

MySQL 5.0 新特性--存储过程

Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的.简单的来说是介绍了"存储过程.触发器.视图.信息架构视图",在此感谢译者陈朋奕的努力. 希望这本书能像内行专家那样与您进行对话,用简单的问题.例子让你学到需要的知识.为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着课程去学,相信很快就能掌握. Conventions and St

MySQL 5.0新特性教程 存储过程:第一讲

mysql|存储过程|教程 作者:mysql AB;翻译:陈朋奕 Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的.简单的来说是介绍了"存储过程.触发器.视图.信息架构视图",在此感谢译者陈朋奕的努力. 希望这本书能像内行专家那样与您进行对话,用简单的问题.例子让你学到需要的知识.为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着

MySQL 5.0新特性教程 存储过程:第一讲

Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的.简单的来说是介绍了"存储过程.触发器.视图.信息架构视图",在此感谢译者陈朋奕的努力. 希望这本书能像内行专家那样与您进行对话,用简单的问题.例子让你学到需要的知识.为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着课程去学,相信很快就能掌握. Conventions and St

【原创】MySQL Connector/C 库的版本选择

      公司内部封装的的 dbi 库依赖于 mysql connector/c 库,但由于历史原因,其所依赖的  mysql connector/c 库的版本为原始的 v6.0.2 , 为了对此现状作出调整,现梳理如下:  v6.0.2 [win] (动态库) libmysql.dll libmysql.lib (静态库) mysqlclient.lib  [linux] (共享库) libmysql.so.16.0.0(静态库) libmysqlclient.a  v6.1.5 === 以

迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(中)

作者介绍  杨奇龙 前阿里数据库团队资深DBA,主要负责淘宝业务线,经历多次双十一,有海量业务访问DB架构设计经验. 目前就职于有赞科技,负责数据库运维工作,熟悉MySQL性能优化,故障诊断,性能压测.   一.innodb新特性   前面写了一篇文章介绍innodb的特性,囿于相关知识点比较多 ,本文继续介绍5.7版本的innodb新特性. 1. innodb buffer dump 功能增强       MySQL 5.7.5 版本新增innodb_buffer_pool_dump_pct参

MySQL · 新特性分析 · 5.7中Derived table变形记

Derived table实际上是一种特殊的subquery,它位于SQL语句中FROM子句里面,可以看做是一个单独的表.MySQL5.7之前的处理都是对Derived table进行Materialize,生成一个临时表保存Derived table的结果,然后利用临时表来协助完成其他父查询的操作,比如JOIN等操作.MySQL5.7中对Derived table做了一个新特性.该特性允许将符合条件的Derived table中的子表与父查询的表合并进行直接JOIN.下面我们看一下DBT-3中

[MySQL 5.6] Innodb新特性之export/import 表文件

 在MySQL 5.6中,提供了新的接口来支持将单独表文件,从一个实例转移到另外一个实例. 对于MySQL运维同学来说,这是一个非常重要的特性,当MySQL实例挂掉了,或者因为其他什么原因重现异常了,就可以通过该特性,将所有的表迁移到其他实例. 以下分析及实验基于MySQL5.6.12 用法: 简单的实验了一把,使用sysbench创建的表 mysql>  FLUSH TABLES sbtest1 FOR EXPORT; Query OK, 0 rows affected (0.00 sec)

MySQL · 特性分析 ·MySQL 5.7新特性系列四

继上三期月报:MySQL 5.7新特性之一介绍了一些新特性及兼容性问题MySQL 5.7新特性之二介绍了临时表的优化和实现MySQL 5.7新特性之三介绍了undo表空间的truncate功能 这期我们一起来学习下MySQL 5.7的并行复制. 1. 背景 MySQL的master<->slave的部署结构,使用binlog日志保持数据的同步,全局有序的binlog在备库按照提交顺序进行回放. 由于新硬件的发展,SSD的引入和多core的CPU,master节点的并发处理能力持续提升,slav