AbstractRoutingDataSource переключает DataSource динамически. ReadOnlyDataSourceInterceptor (AOP) или кастомный RoutingDataSource.determineCurrentLookupKey() смотрит на @Transactional(readOnly=true) — направляет на replica. Write транзакции → primary. Важно: read replica лагает (replication lag 10мс-секунды). Не делать write-then-read через replica в одной операции. spring.datasource.replica.url=... для конфигурации. Hibernate hint: session.setProperty(AvailableSettings.STATEMENT_FETCH_SIZE) для больших resultsets.
Как работать с read replicas через Spring Data JPA?
Senior
199 просмотровAFK Offer AI
Что такое CAS-операция?