Настройка MariaDB в Spring Boot для AWS Aurora - запись маршрутизации запросов в экземпляр считывателя - PullRequest
0 голосов
/ 23 мая 2019

У меня есть приложение под управлением MariaDB, использующее Aurora RDS MySQL в качестве источника данных.

В моем 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, и они говорят, что это происходит из-за кеширования DNS, используемого AWS, среди прочих причин.

Я также говорил со службой поддержки AWS, и они посоветовалиИспользуйте конечные точки записи, только если приложение выполняет обе операции чтения / записи.Однако конечная точка считывателя отвечает за распределение нагрузки, поэтому функциональность будет потеряна, и все запросы попадут в экземпляр писателя.

Я также читал эту статью в документах MariaDB: Конфигурация Aurora в MariaDB

[...] рекомендуемая строка URL должна использовать только конечную точку кластера.

Драйвер автоматически обнаружит главные и подчиненные устройства этого кластера из текущей конечной точки кластера во времявремя соединенияЭто позволяет добавлять новые реплики в экземпляр кластера, которые будут обнаружены без изменения конфигурации драйвера.

Нужно ли предоставлять только конечную точку кластера записи, а MariaDB позаботится о балансировке нагрузки между конечными точками записи и чтения?Или мне нужно предоставить обоим дополнительную конфигурацию?

...