У нас есть приложение весенней загрузки, и мы пытаемся подключиться к нескольким базам данных (главная / подчиненная).
Цель - оптимизировать общую производительность, перенаправляя операции чтения и записи на соответствующий сервер.
У нас есть структура master / slave, в которой master будет выполнять операции записи, а slave будет выполнять все операции чтения. Примечание: мы используем amazon RDS (aurora mysql) для master и его реплики чтения, и оба они существуют в одном кластере.
Мы пытаемся достичь этого с помощью диспетчера репликации mysql. В настройке мы определили ниже два свойства
spring.datasource.driverClassName=com.mysql.jdbc.ReplicationDriver
spring.datasource.jdbc-url=jdbc:mysql:replication://<master url>,<slave url>:3306/schema_name
Внутри репо все операции чтения помечаются @Transactional (readOnly = true), а операции записи - @Transactional (readOnly = false).
Проблема в том, что все чтение / записьтранзакции перенаправляются только в основную базу данных.
На самом деле это работало, когда я использовал URL-адреса (ведущий и ведомый), которые существуют в другом кластере.
Но когда мы пробовали его в одном кластере, он нене работает.