Bootstrap

AWS JDBC Driver连接中国区的Aurora需要配置参数 enableClusterAwareFailover=false

AWS JDBC Driver 中国区和Global区域的区别是,由于中国区Aurora Endpoint与Global的后缀不同,中国区的AWS JDBC Driver其实无法识别中国区endpoint, 因为中国区的资源endpoint是以".cn" 结尾,这个endpoint不被认为是aurora的endpoint,会被认为是custom domain.

因此应用程序在使用AWS JDBC Driver连接中国区的Aurora,需要配置参数:enableClusterAwareFailover=false

没有配置参数的话会发生如下报错:

### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: The clusterInstanceHostPattern configuration property is required when an IP address or custom domain is used to connect to a cluster that provides topology information. If you would instead like to connect without failover functionality, set the enableClusterAwareFailover configuration property to false.

但是我们不必担心开启了这个参数以后,在Aurora发生故障转移的时候自动故障转移,因为驱动描述是有自己的failover机制,可以在dns解析替换之前发现新的实例的ip,更快速连接进去。

AWS JDBC Driver的github:

AWS MySQL JDBC Driver does not recognize Aurora endpoint in China · Issue #233 · awslabs/aws-mysql-jdbc · GitHub

其实用MySQL JDBC Driver也没啥问题的~~

;