MySQL JDBC 集群(标记)

MySQL JDBC 集群

3 八月, 2010 (12:53) | 性能 , 数据库 繁体 English    DeliciOus    2 分享到新浪 微博
作者: H.E. | 您可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://www.javabloger.com/article/jdbc-mysql-loadbalance.html
豆瓣 读书 向你推荐有关 性能数据库 、 类别的图书。

如果按照网上大部分提供的资料,写成这样 url = jdbc:mysql://127.0.0.1,192.168.20.211/dbName仅仅只是用逗号 分隔开 , 那是肯定不行的,当写在jdbc url地址中前一台的数据库(127.0.0.1)down掉以后,就算你重新启动还是会出现 org.apache.jasper.JasperException: java.lang.NullPointerException 空指针异常,如图所示

查看大图请点击这里

采用较新版本的 mysql-connector-java-5.1.6.jar  MySQL JDBC 驱动,再将url写成这样url=jdbc:mysql:loadbalance://127.0.0.1,192.168.20.249/dbName
会将访问的压力分载到 127.0.0.1,192.168.20.211 2个机器上,还可以加上roundRobinLoadBalance=true参数,使用roundRobin算法,若是其中一台机器down掉以后,将 会自动将不能访问的数据库服务器 踢除,如果还原后将继续进行压力分载。

测试方案:
1、你可以找2台数据库,保证这2台数据库的用户名和密码一致,然后建立2张同样的表,里面插入不同的数据,再通过web程序调用,你不断的刷新页面你将会看见 显示不同的数据,这样就说明 压力被分载到不同的数据库服务器上了。
 
2、再将关闭其中一台服务器,看看是不是会 剔除 被关闭的那台机器直接访问目前活动的那台。

3、如果再恢复,MySQL JDBC 驱动将会帮你 继续分载压力,呵呵。

口水:
Mysql JDBC 驱动的版本也非常的重要 ,建议使用 mysql-connector-java-5.1.6.jar 或者以上的版本。

你可能感兴趣的:(mysql,算法,新浪微博,jdbc,读书)