2017-10-26 12 views
2

현재 저는 단일 Cassandra 데이터베이스 노드에 데이터를 저장하는 스프링 부트 마이크로 서비스를 구현 중입니다. 데이터베이스 연결이 끊어지면 재시도 횟수를 설정하고 마이크로 서비스 구성 파일에서 재시도 사이의 시간을 밀리 초 단위로 설정할 수 있어야합니다. "spring-boot version 1.5.6"과 spring-data-cassandra version 1.5.6 "을 사용하고 있습니다. CassandraCqlClusterFactoryBean 유형의 클러스터를 생성하고 사용자 정의 연결 정책을 cluster.setReconnectionPolicy()에 전달하여 재시도 사이의 밀리 초 수를 설정할 수있었습니다 메서드를 사용할 수 있지만 사용자 지정 재시도 정책을 사용하여 재시도 횟수를 설정할 수는 없습니다. 올바르게 이해되면 재시도 정책은 쿼리가 수행 된 경우에만 처리되지만 제 경우에는 재시도 횟수를 모두 설정해야합니다 몇 일 동안 조사를 해본 결과 기본적으로 사용자 정의 ReconnectionSchedule을 사용하는 추한 해킹을 만들 수 있었고 특정 조건이 충족되면 nextDelayMs() 방법으로 스프링 부트 응용 프로그램을 중지하지만 그럼에도 불구하고 디버그 모드에서 소스 코드를 계속 보았고 예외가 ControlConnection에 의해 던져지는 것을 보았습니다. 그래서 데이터 저장소 담당자를 확인했습니다. IAL 문서 스프링 데이터 카산드라 어떻게 제한된 수의 연결 재 시도를 설정 하시겠습니까?

그래서 누군가가 제대로 미리 정의 된 후 노드에 다시 연결을 시도 내 카산드라 드라이버를 중지하는 방법을 구현하는 방법을 보여주세요 수 ... Control connection에 대하여, 나는

가 곧 발견 재시도 횟수.

미리 감사드립니다.

답변

1

939.1에서 봐 here.

시간 초과가 만료되거나 세션이 성공적으로 만들어 질 때까지 매 x 초마다 세션을 열려고하는 것처럼 할 수 있습니다.