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);
posted on 2017-01-17 16:18 yin.kh 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/yinkh/p/6293558.html
總結
以上是生活随笔為你收集整理的Mysql Connector 5.1 好用的新特性的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 基础编程题之奇数位(偶数位)都是奇数(偶
- 下一篇: 6-5-1:STL之stack和queu
