java连接主从架构的mysql数据库实现故障自动切换
目的
在系统架构中,一般为了高可用性,设计数据库架构都会考虑容灾机制,在主数据库宕机之后可以切换到备用数据库上;切换的方法一般分为手动切换和自动切换;手动切换顾名思义就是人为操作更改数据库连接地址,重启服务;自动切换就是系统使用人员无感的情况下自动切换到可以使用的数据库;网上大多数自动切换的方案都是增加中间件或者使用keepalive进行切换,但是如果是java程序使用jdbc方式连接的话其实mysql驱动包(mysql-connector-java-xxx.jar)中就已经具备了自动切换故障数据库的功能
使用方式
假设我们有两台mysql数据库,一主一备,主数据库IP端口:192.168.0.1:3306,备数据库IP端口:192.168.0.2:3306,我们只要修改jdbc连接中的url数据就可以;例
jdbc:mysql://192.168.0.1:3306,192.168.0.2:3306/mydb?allowMultiQueries=true
这样在192.168.0.1数据库宕机的情况下,程序会自动连接192.168.0.2数据库,无需其他配置
官网参考地址
https://dev.mysql.com/doc/connector-j/en/connector-j-config-failover.html