212.8. LevelDB


Camel 2.10에서 사용 가능

LevelDB 는 매우 가볍고 내장 가능한 키 값 데이터베이스입니다. Camel과 함께 Aggregator와 같은 다양한 Camel 기능에 대한 지속적인 지원을 제공할 수 있습니다.

현재 제공하는 기능은 다음과 같습니다.

  • LevelDBAggregationRepository

212.8.1. Using LevelDBAggregationRepository

LevelDBAggregationRepositoryAggregationRepository 이며, 이 어차피는 집계된 메시지를 유지합니다. 이렇게 하면 기본 집계기에서 AggregationRepository 에서만 메모리에 를 사용하므로 메시지가 느릴 수 있습니다.

다음과 같은 옵션이 있습니다.

Expand
옵션유형설명

repositoryName

문자열

필수 리포지토리 이름입니다. 여러 리포지토리에 공유 LevelDBFile 을 사용할 수 있습니다.

persistentFileName

문자열

영구 스토리지의 파일 이름입니다. 시작 시 파일이 없는 경우 새 파일이 생성됩니다.

levelDBFile

LevelDBFile

구성된 기존 org.apache.camel.component.leveldb.LevelDBFile 인스턴스를 사용합니다.

sync

boolean

Camel 2.12: LevelDBFile이 쓰기 시 동기화되어야 하는지 여부입니다. 기본값은 false입니다. 쓰기 시 동기화하면 항상 모든 쓰기가 디스크에 스풀링될 때까지 대기하므로 업데이트가 중단되지 않습니다. async vs 동기화 쓰기에 대한 자세한 내용은 LevelDB 문서 를 참조하십시오.

returnOldExchange

boolean

존재하는 경우 get 작업에서 기존 Exchange를 반환해야 하는지 여부입니다. 기본적으로 이 옵션은 집계 시 이전 교환이 필요하지 않으므로 최적화하려면 false 입니다.

useRecovery

boolean

복구 가능 여부입니다. 이 옵션은 기본적으로 true 입니다. Camel Aggregator 자동 복구가 활성화된 경우 집계된 교환이 실패하여 다시 제출하도록 합니다.

recoveryInterval

long

복구가 활성화되면 백그라운드 작업이 모든 x'th 시간으로 실행되어 실패한 교환원을 검색하고 복구하고 다시 제출합니다. 기본적으로 이 간격은 5000 밀리입니다.

maximumRedeliveries

int

복구된 교환에 대한 복구 시도 횟수를 제한할 수 있습니다. 활성화된 경우 모든 redelivery 시도에 실패한 경우 Exchange가 dead letter 채널로 이동합니다. 기본적으로 이 옵션은 비활성화되어 있습니다. 이 옵션을 사용하면 deadLetterUri 옵션도 제공해야 합니다.

deadLetterUri

문자열

복구된 교환이 이동되는 Dead Letter Channel의 엔드포인트 uri입니다. 이 옵션을 사용하는 경우 maximumRedeliveries 옵션도 제공해야 합니다.

repositoryName 옵션을 제공해야 합니다. 그런 다음 persistentFileName 또는 levelDBFile 을 제공해야 합니다.

212.8.2. 유지될 때 보존되는 사항

LevelDBAggregationRepository 는 직렬화할 수 있는 호환 가능한 메시지 본문 데이터 유형만 유지합니다. 메시지 헤더는 기본 / 문자열 / 숫자 / 등이어야합니다. 데이터 유형이 이러한 유형이 아닌 경우 삭제되고 WARN 이 기록됩니다. 메시지 본문과 메시지 헤더만 유지합니다. Exchange 속성은 유지되지 않습니다.

212.8.3. 복구

LevelDBAggregationRepository 는 기본적으로 실패한 모든 Exchange를 복구합니다. 이 작업은 영구 저장소에서 실패한 Exchange를 검색하는 백그라운드 작업이 있어야 합니다. checkInterval 옵션을 사용하여 이 작업이 실행되는 빈도를 설정할 수 있습니다. 복구는 트랜잭션으로 작동하므로 Camel이 실패한 Exchange를 복구하고 복구할 수 있습니다. 복구되는 것으로 확인된 모든 교환은 영구 저장소에서 복원되고 다시 제출되어 다시 발송됩니다.

다음 헤더는 Exchange가 복구/전송 중일 때 설정됩니다.

Expand
header유형설명

Exchange.REDELIVERED

부울

이 값이 true로 설정되어 Exchange가 제거됨을 나타냅니다.

Exchange.REDELIVERY_COUNTER

정수

1부터 시작하는 redelivery 시도입니다.

Exchange가 성공적으로 처리된 경우에만 AggregationRepository 에서 확인 방법이 호출될 때 발생하는 complete로 표시됩니다. 즉, 동일한 Exchange가 다시 실패하면 성공할 때까지 다시 시도됩니다.

옵션 maximumRedeliveries 를 사용하여 지정된 복구된 교환에 대한 최대 복구 시도 횟수를 제한할 수 있습니다. 또한 Camel은 최대Redeliveries 에 도달했을 때 Exchange를 보낼 위치를 알고 있도록 deadLetterUri 옵션을 설정해야 합니다.

camel-leveldb의 단위 테스트에서 몇 가지 예를 볼 수 있습니다(예: 이 테스트 ).

212.8.3.1. Java DSL에서 LevelDBAggregationRepository 사용

이 예제에서는 target/data/leveldb.dat 파일에 집계된 메시지를 유지하려고 합니다.

212.8.3.2. Spring XML에서 LevelDBAggregationRepository 사용

동일한 예제이지만 Spring XML을 대신 사용합니다.

212.8.4. 종속 항목

camel 경로에 levelDB를 사용하려면 camel-leveldb 에 대한 종속성을 추가해야 합니다.

maven을 사용하는 경우 pom.xml에 다음을 추가하여 최신 릴리스 및 가장 큰 릴리스의 버전 번호를 대체하십시오 (최신 버전의 다운로드 페이지 참조).

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-leveldb</artifactId>
  <version>2.10.0</version>
</dependency>
Copy to Clipboard Toggle word wrap

212.8.5. 예를 들면 다음과 같습니다.

  • Camel 구성
  • 구성 요소
  • 끝점
  • 시작하기
  • 집계기
  • HawtDB
  • components
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat