source

AWS Aurora용 Spring Boot의 MariaDB 구성 - Reader 인스턴스에 쿼리 라우팅 쓰기

gigabyte 2022. 10. 19. 21:07
반응형

AWS Aurora용 Spring Boot의 MariaDB 구성 - Reader 인스턴스에 쿼리 라우팅 쓰기

저는 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 문서에서도 다음 기사를 읽었습니다.마리아 오로라 구성DB

[...] 권장 URL 문자열은 클러스터 끝점만 사용해야 합니다.

드라이버는 접속 시 현재 클러스터 엔드 포인트에서 이 클러스터의 마스터와 슬레이브를 자동으로 검출합니다.이렇게 하면 드라이버 구성을 변경하지 않고 검색되는 클러스터 인스턴스에 새 복제본을 추가할 수 있습니다.

라이터 클러스터 엔드포인트만 제공해야 하며 MariaDB는 라이터 엔드포인트와 리더 엔드포인트 간의 로드밸런싱을 담당합니까?아니면 둘 다 추가 구성을 제공해야 합니까?

언급URL : https://stackoverflow.com/questions/56272775/mariadb-configuration-in-spring-boot-for-aws-aurora-write-query-routing-to-rea

반응형