#spring-boot #jdbc #spring-jdbc #mysql-connector
Вопрос:
Я нахожусь в процессе переноса традиционного приложения war/spring на springboot 2.5, и я не могу заставить MySQL работать с JPA/JDBC с помощью драйвера репликации mysql:
spring.datasource.url=jdbc:mysql:replication://host1:3306,rohost2:3306/dbname?autoReconnect=trueamp;serverTimezone=UTCamp;logger=com.mysql.cj.log.Slf4JLoggeramp;allowSlavesDownConnections=trueamp;readFromMasterWhenNoSlaves=trueamp;loadBalanceBlacklistTimeout=5000
Ответ:
вложенным исключением является исключение java.lang.RuntimeException: Драйвер com.mysql.cj.jdbc.Драйвер утверждает, что не принимает jdbcUrl, » jdbc:mysql:репликация://…..»
Драйвер репликации не поддерживается в Spring boot?
Комментарии:
1. Зачем вам нужен драйвер репликации для приложения?
2. Мое приложение использует узлы только для чтения для повышения производительности, поскольку это приложение с несколькими принципами, в котором более 100 тысяч пользователей. Примером использования может быть отчетность или любая операция, при которой требуется чтение данных с уровня обслуживания без операции записи. В этом случае мы используем @Transactional Spring(только для чтения=true). Это значительно повышает нагрузку на наши базы данных MySQL, которые работают на AWS RDS с использованием нескольких реплик, доступных только для чтения.
3. Какую версию
mysql:mysql-connector-java
вы используете? Значение по умолчанию для Spring Boot 2.5.x равно 8.0.x, где я не считаю, что для репликации требуется отдельный драйвер. Если вы используете старую версию соединителя, вам может потребоваться указатьspring.datasource.driver-class-name
полное имя драйвера репликации.