[Spring - Redis] READONLY You can't write against a read only replica.

2023. 9. 15. 08:52·개발중/Spring Boot & Redis
728x90
반응형

redis 를 단일 master 구조로 구성했을 때는 해당 포스팅처럼 연결했는데 잘 연결이 되었습니다.

 

그런데 master / slave 구조로 바꾸니 아래와 같이 에러가 났습니다.

 

READONLY You can't write against a read only replica.

 

master / slave 구조상 master 는 조회, 등록이 가능하나 slave 는 조회만 가능합니다.

slave 는 master 의 복제본이기 때문에 등록이 불가능합니다.

 

근데 뭔가 에러를 읽다보니 spring 에서 slave 에게 쓰기를 하고 있는 기분이 들었습니다. ( slave 는 READONLY 입니다. )

그러면 에러가 나는게 당연하지만 ...

 

저는 k8s 에 reids 를 구성했고, spring 의 redis 접근 정보 구성은 k8s 의 service name 에 접근하고 있기 때문에

'spring 은 k8s redis service 에 요청 보내면 알아서 master 랑 slave 요청을 구분해서 로드밸런싱 처리가 되어야하는게 아닌가 ?' 라고 잘못된 생각을 하고 있었습니다 . .

 

아무튼 구글에도 내가 원하는 답이 없기에  스프링 레디스 공식문서  를 읽어보니 내가 원한 글이 있었습니다 ..

 

application.yaml 파일에 설정한 redis 정보를 지웠습니다.

 

 

아래와 같이 master 에 쓰기 slave 에서 읽기 코드를 추가해주니 제가 원하는 로직대로 실행되었습니다.

@Configuration
public class WriteToMasterReadFromReplicaConfiguration {

    @Bean
    public LettuceConnectionFactory redisConnectionFactory() {

        LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
                .readFrom(ReadFrom.REPLICA_PREFERRED)
                .build();

        RedisStandaloneConfiguration serverConfig = new RedisStandaloneConfiguration("redis", 6379);
        serverConfig.setPassword(RedisPassword.of("1234"));

        return new LettuceConnectionFactory(serverConfig, clientConfig);
    }
}

 

728x90
반응형
저작자표시 (새창열림)

'개발중 > Spring Boot & Redis' 카테고리의 다른 글

클래스 변경과 직렬화: Spring Redis 환경에서의 serialVersionUID 관리  (0) 2023.11.17
로컬에서는 Spring Session, 배포에서는 Redis: 세션 저장소 분리 전략  (0) 2023.09.20
Spring Security에서 Redis를 사용하면서 겪은 SessionRegistry 문제  (0) 2023.09.20
[Spring - Redis] RedisReadOnlyException: READONLY You can't write against a read only replica. Master kill 시 에러 ( master / slave 구조임 )  (0) 2023.09.15
Spring Session storage 를 Redis 로 설정하기 !  (0) 2023.09.13
'개발중/Spring Boot & Redis' 카테고리의 다른 글
  • 로컬에서는 Spring Session, 배포에서는 Redis: 세션 저장소 분리 전략
  • Spring Security에서 Redis를 사용하면서 겪은 SessionRegistry 문제
  • [Spring - Redis] RedisReadOnlyException: READONLY You can't write against a read only replica. Master kill 시 에러 ( master / slave 구조임 )
  • Spring Session storage 를 Redis 로 설정하기 !
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (949)
      • 개발중 (635)
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (88)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18)
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (28)
        • 기록 (3)
        • 캐글 스터디 (3)
        • R (12)
        • MLOps (10)
      • 논문 (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리눅스 마스터 1급 요약
    Git 저장소
    스프링
    네트워크 관리사 학점
    docker
    redis
    파이썬 알고리즘
    리눅스 마스터
    REST API
    쿠버네티스
    jpa
    git
    리눅스 마스터 1급
    네트워크 관리사 실기
    네트워크 관리사 요약
    알고리즘
    리눅스 1급 요약
    네트워크 관리사 2급
    BackendDevelopment
    springboot
    네트워크 관리사 자격증
    파이썬
    네트워크 관리사
    VUE
    네트워크 관리사 2급 실기
    java
    쿠버네티스 스터디
    Spring
    리눅스 마스터 1급 정리
    리눅스 마스터 요약
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
[Spring - Redis] READONLY You can't write against a read only replica.
상단으로

티스토리툴바