我有一个使用Aurora RDS MySQL作为数据源运行MariaDB的应用程序。
在我的application.properties
中,我有:
spring.datasource.url=jdbc:mariadb:aurora://****.cluster***.rds.amazonaws.com:3306,****.cluster-ro***.rds.amazonaws.com:3306/db
间歇性地,我看到此错误:
Caused by: java.sql.SQLException: (conn=150057) The MySQL server is running with the --read-only option so it cannot execute this statement
我已经阅读了关于SO的其他问题的答案,他们谈到这是由于AWS使用DNS缓存等原因造成的。
我还与AWS支持团队进行了交谈,他们建议仅在应用程序同时执行读/写操作时才使用写终结点。但是,读取器端点负责负载平衡,因此功能将丢失,所有查询都将到达写入器实例。
我还阅读了MariaDB文档中的这篇文章:Aurora configuration in MariaDB
[...]推荐的URL字符串只能使用群集端点。
驱动程序将在连接时间内从当前群集端点自动发现此群集的主服务器和从服务器。这样可以在不更改驱动程序配置的情况下将新副本添加到群集实例中。
我是否仅需要提供写程序集群终结点,MariaDB会负责写程序和读取器端点之间的负载平衡?还是我需要同时为两者提供其他配置?